1

WPFからWindows8アプリへのアプリケーションの移植に取り組んでいます。

名前空間のような同様の機能があるかどうかを知りたいです(System.Net.WebClient.UploadStringでは使用できないため)はいの場合、例をいただければ幸いです。そうでない場合、代替手段はありますか?System.Net.Http.HttpClientSystem.Net.WebClientWinRT

ちなみに、Morten Nielsenの投稿http://www.sharpgis.net/post/2011/10/05/WinRT-vs-Silverlight-Part-7-WebClient.DownloadStringの助けを借りて、名前空間を使用して同等のものに変換することができました。作成-WebRequests.aspxSystem.Net.Http.HttpClient

4

1 に答える 1

1

はい、PostAsyncメソッドを使用します。

このメソッドは、インスタンスだけでなく、( WebClientクラスのメソッドUriと同様に)または文字列のいずれかを取ります。UploadStringHttpContent

インスタンスは、HttpContentさまざまなタイプのコンテンツに依存しないように設計されており、コンテンツを提供するメカニズム(バイトByteArrayContentの配列、StreamContentStreamなど)だけでなく、構造(MultipartFormDataContent)も指定できます。

そうは言っても、次のように文字列を送信するStringContentクラスもあります。

// コンテンツ。string post="投稿するコンテンツ";

// The client.
using (client = new HttpClient());
{
    // Post.
    // Let's assume you're in an async method.
    HttpResponseMessage response = await client.Post(
        "http://yourdomain/post", new StringContent(post));

    // Do something with the response.
}

を指定する必要がある場合はEncodingを受け取るコンストラクターがEncodingあります。これは次のように使用します。

// The client.
using (client = new HttpClient());
{
    // Post.
    // Let's assume you're in an async method.
    HttpResponseMessage response = await client.Post(
        "http://yourdomain/post", new StringContent(post),
         Encoding.ASCII);

    // Do something with the response.
}

そこからHttpResponseMessage、応答が送信されるときに処理することが問題になります(それが重要な場合、一方向の操作でない場合)。

于 2013-01-04T18:06:16.873 に答える