SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

速習 Windowsストアアプリケーション

サーバーと連携するWindowsストアアプリを作成する(前編)

速習 Windowsストアアプリケーション 第14回

  • X ポスト
  • このエントリーをはてなブックマークに追加

値をPOSTする

 先ほどのサンプルはサーバーから値を取得(GET)して来ました。

 今度はサーバーに何等かの値を送りたい(POST)場合の処理を見ていきましょう(HttpRequestSample_002.zip)。

 ストアアプリの画面を通してユーザーが「リンゴを2つと、みかんを1つ選択した」というケースを想定します。

サーバー側のコード

 サーバー側はPHPという言語を用いて、以下のように記述されていることとします。

サーバー側コード(PHP)
<?php
if (!empty($_POST))
{
    $apple =  $_POST["apple"];
    $orange = $_POST["orange"];

    echo "リンゴ:". intval($apple). "個";
    echo "\n";
    echo "みかん:". intval($orange). "個";
}
?>

 ポストされた値($_POST)からリンゴ(apple)とみかん(orange)を取り出して出力しているだけです。

 サーバー側の言語としてPHPを選んだのは、サーバー側のコードはC#でなくても良いことと、サーバー側はPHPなどのオープンソース系の言語で書かれていることが多いという理由からです。

ストアアプリ側のコード

 ストアアプリ側は以下のコードで値をPOSTします。

ストアアプリ側
HttpClient client = new HttpClient();

String url = "http://coelacanth.heteml.jp/sample/codezine/postsample.php";

// POSTする内容
var content = new FormUrlEncodedContent(new[] 
{
    new KeyValuePair<string, string>("apple", "2"),
    new KeyValuePair<string, string>("orange", "1")
});

HttpResponseMessage message;

String responseString;

try
{
    message = await client.PostAsync(url, content);

    responseString = await message.Content.ReadAsStringAsync();

    this.resultTextBox.Text = responseString;
}
catch
{
    // 例外が発生した場合の処理を記述していく
}

コードの説明

FormUrlEncodedContent

 FormUrlEncodedContentクラスでPOSTする値を定義します。サンプルではKeyValuePairを用いてappleというキーに2を、orangeというキーに1を指定しています。

PostAsyncメソッド

 一つ前のサンプルはGetAsyncでしたが今回はPostAsyncメソッドを使います。PostAsyncは第2引数にPOSTする値(FormUrlEncodedContentクラス)を取ります。

 サンプルを実行すると、以下のような結果を得られます。

POSTの実行結果
POSTの実行結果

ヘッダーを指定する

 HTTP通信のヘッダー情報を編集したい場合は以下のように行います(HttpRequestSample_003.zip)。

ヘッダー情報を修正する
HttpClient client = new HttpClient();
client.DefaultRequestHeaders.Add("user-agent", "xbox-wow");

 上記通信をFiddlerで確認すると、以下のようにuser-agentに「xbox-wow」が指定されているのが分かります。

ヘッダーを書き換えた結果
ヘッダーを書き換えた結果

次のページ
通信をハンドリングする

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
速習 Windowsストアアプリケーション連載記事一覧

もっと読む

この記事の著者

西村 誠(ニシムラ マコト)

 Microsoft MVP Windows Platform Development。 Flash、PHPの開発経験もあり国産ECサイト構築フレームワーク「EC-CUBE」の公式エバンジェリストでもある。 ブログ:眠るシーラカンスと水底のプログラマー 著書:基礎から学ぶ Windowsストアアプリ開発

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/7988 2014/10/01 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング