Windows.Web.Http 名前空間
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
UWP アプリ用の最新の HTTP クライアント API を提供します。
クラス
HttpBufferContent |
バッファーを使用する HTTP コンテンツを提供します。 |
HttpClient |
HTTP 要求を送信し、URI によって識別されるリソースから HTTP 応答を受信します。 HttpClient クラスのプログラミング ガイダンスとコード例については、HttpClient の概念に関するトピックを参照してください。 |
HttpCookie |
HTTP Cookie を管理するための一連のプロパティとメソッドを提供します。 |
HttpCookieCollection |
HttpCookie クラスのインスタンスのコレクション コンテナーを提供します。 |
HttpCookieManager |
HttpCookie を追加または削除するか、アプリに関連付けられている Cookie を表示します。 |
HttpFormUrlEncodedContent |
アプリケーション/x-www-form-urlencoded MIME の種類でエンコードされた名前/値データを使用する HTTP コンテンツを提供します。 |
HttpGetBufferResult |
最終的なバッファーの結果を、元の HTTP 要求、結果の HTTP 応答 (存在する場合)、拡張エラー値、成功した兆候と組み合わせます。 |
HttpGetInputStreamResult |
最終的な入力ストリームの結果と、元の HTTP 要求、結果の HTTP 応答 (存在する場合)、拡張エラー値、成功した兆候を組み合わせます。 |
HttpGetStringResult |
最終的な文字列結果を、元の HTTP 要求、結果の HTTP 応答 (存在する場合)、拡張エラー値、成功した兆候と組み合わせます。 |
HttpMethod |
GET や POST などの標準の HTTP メソッドを取得し、新しい HTTP メソッドを作成します。 |
HttpMultipartContent |
multipart/* MIME タイプを使用する HTTP コンテンツを提供します。 |
HttpMultipartFormDataContent |
マルチパート/フォーム データ MIME の種類を使用する HTTP コンテンツを提供します。 |
HttpRequestMessage |
ヘッダーを含む HTTP 要求メッセージを表します。 |
HttpRequestResult |
元の HTTP 要求と、結果の HTTP 応答 (存在する場合)、拡張エラー値、成功した兆候を組み合わせます。 |
HttpResponseMessage |
ヘッダー、状態コード、データを含む HTTP 応答メッセージを表します。 |
HttpStreamContent |
ストリームを使用する HTTP コンテンツを提供します。 |
HttpStringContent |
文字列を使用する HTTP コンテンツを提供します。 |
HttpTransportInformation |
HTTP 接続で使用される基になるトランスポートに関する情報を提供します。 |
構造体
HttpProgress |
HttpClient 操作の進行状況に関する状態情報が含まれます。 |
インターフェイス
IHttpContent |
HTTP エンティティ本体とコンテンツ ヘッダーの基本インターフェイスを提供します。 |
列挙型
HttpCompletionOption |
すべての応答が読み取られたとき、またはヘッダーだけが読み取られた場合に、非同期 HttpClient 操作が完了したと見なされるかどうかを示します。 |
HttpProgressStage |
HTTP 接続の進行中のステップを示します。 |
HttpResponseMessageSource |
HttpResponseMessage で受信したデータのソースを示します。 |
HttpStatusCode |
HTTP 要求への応答で HTTP に対して定義されている状態コードの値を格納します。 |
HttpVersion |
HTTP プロトコルのバージョンを表します。 |
例
次のサンプル コードは、HTTP サーバーから文字列としてコンテンツを取得する方法を示しています。
using System;
using Windows.Foundation;
using Windows.Web.Http;
// Note: the URI constructor will throw an exception
// if the string passed is not a valid URI
var uri = new Uri("http://example.com/datalist.aspx");
var httpClient = new HttpClient();
// Always catch network exceptions for async methods
try
{
var result = await httpClient.GetStringAsync(uri);
}
catch (Exception ex)
{
// Details in ex.Message and ex.HResult.
}
// Once your app is done using the HttpClient object call dispose to
// free up system resources (the underlying socket and memory used for the object)
httpclient.Dispose();
#include "winrt/Windows.Foundation.h"
#include "winrt/Windows.Web.Http.h"
using namespace winrt;
Windows::Foundation::IAsyncAction HttpClientExample()
{
Windows::Foundation::Uri uri{ L"http://www.bing.com" };
Windows::Web::Http::HttpClient httpClient{};
// Always catch network exceptions for async methods.
try
{
auto response{ co_await httpClient.GetStringAsync(uri) };
}
catch (winrt::hresult_error const& ex)
{
// Details in ex.message() and ex.to_abi().
}
// The destructor of HttpClient frees system resources
// (the underlying socket, and memory used for the object).
}
using namespace Windows::Foundation;
using namespace Windows::Web::Http;
// Note: the URI constructor will throw an exception
// if the string passed is not a valid URI
uri = ref new Uri("http://example.com/datalist.aspx");
httpClient = ref new HttpClient();
// Always catch network exceptions for async methods
try
{
httpClient->GetStringAsync(uri);
}
catch (Exception ^ ex)
{
// Details in ex.Message and ex.HResult.
}
// In C++/CX, the system resources used by httpClient object are released
// when the object falls out of scope or by the destructor (delete operator).
注釈
Windows.Web.Http 名前空間と関連する Windows.Web.Http.Headers 名前空間と Windows.Web.Http.Filters 名前空間は、HTTP および REST サービスを対象とする UWP アプリ用のプログラミング インターフェイスを提供します。 この新しい HTTP API のこの機能は、IETF によって RFC 2616 で定義されている HTTP に準拠するように設計されています。 新しい HTTP API は、JavaScript、C#、VB.NET、C++ で開発者に一貫したサポートを提供します。
この新しい API は、3 つの異なる API の使用を、Windows 8 の言語プロジェクションごとに以前に必要だった異なる機能に置き換えます。
- JavaScript の WinJS.xhr
- C# および VB の System.Net.Http 名前空間の HttpClient。
- C++ 用 IXMLHTTPRequest2
Windows.Web.Http および関連する名前空間のクラスは、HTTP および REST 開発のすべてのレベルを対象とします。
- 基本的な HTTP 開発者
- サイト固有の HTTP ライブラリ開発者
- 高度な HTTP 開発者
基本的な HTTP 開発者の場合、新しい API には、最も一般的なタスクを処理するためのシンプルなインターフェイスと、ほとんどの環境で動作する必要がある認証の適切な既定値があります。 ライブラリ開発者の場合、一貫性のあるオブジェクト モデルと複数言語のサポートは、すべての言語の開発者向けに 1 回ライブラリを記述できることを意味します。 高度な HTTP 開発者向けに、新しい API には豊富な機能セットが含まれています。
Windows.Web.Http 名前空間と関連する名前空間は、次のコンポーネントを提供します。
- HttpClient - HTTP 経由で要求を送受信するメイン クラス。
- HttpRequestMessage - RFC 2616 で定義されている HTTP 要求メッセージ。
- HttpResponseMessage - RFC 2616 で定義されている HTTP 応答メッセージ。
HTTP メッセージの内容は、 RFC 2616 で定義されているエンティティ本体に対応しています。 Windows.Web.Http 名前空間内のいくつかのクラスとインターフェイスを HTTP コンテンツに使用できます。次に示します。
- IHttpContent - 開発者が独自のコンテンツ オブジェクトを作成するための基本インターフェイス。 これは、HTTP エンティティ本文とコンテンツ ヘッダーを表します。 このインターフェイスには、実際のコンテンツ データを取得および設定するメソッドがあります。 また、コンテンツ関連ヘッダーを取得および設定するプロパティも提供します。
- HttpBufferContent - バッファーを使用する HTTP コンテンツ。
- HttpFormUrlEncodedContent - アプリケーション/x-www-form-urlencoded MIME の種類でエンコードされた名前/値のタプルを使用する HTTP コンテンツ。
- HttpMultipartContent - multipart/* MIME タイプを使用する HTTP コンテンツ。
- HttpMultipartFormDataContent - エンコードされた マルチパート/フォーム データ MIME タイプを使用する HTTP コンテンツ。
- HttpStreamContent - ストリームを使用する HTTP コンテンツ。 このコンテンツ タイプは、データを受信するために HTTP GET メソッドと、データをアップロードする HTTP POST メソッドによって使用されます。
- HttpStringContent - 文字列を使用する HTTP コンテンツ。
Windows.Web.Http.Headers 名前空間のクラスは、RFC 2616 で定義されている HTTP ヘッダーを表します。 HTTP ヘッダーは、取得または設定されるプロパティとして HttpRequestMessage と HttpResponseMessage に関連付けられます。
Windows.Web.Http 名前空間のクラスでは、 Windows.Web.Http.Filters 名前空間のクラスに基づくフィルターを使用できます。 フィルターは、HTTP サービスの一般的な問題に役立つハンドラーを提供します。 フィルターを順番に連結して、より複雑な HTTP サービスの問題に対処できます。 ライブラリ開発者が HTTP サービスに関する一般的な問題を解決するのに役立つ、すぐに使用できるフィルターがいくつかWindows 8.1に含まれています。 これらのフィルターには、監視対象のネットワーク接続と再試行用のハンドラーが含まれます。 ライブラリ開発者は、サイト固有の問題に対して独自のフィルターを記述できます (たとえば、サイトで 503 (サーバー利用不可) 応答を使用して、要求を再試行する必要があることを示す場合があります)。
Windows.Web.Http 名前空間と関連する Windows.Web.Http.Headers 名前空間と Windows.Web.Http.Filters 名前空間を使用するアプリが大量のデータ (50 メガバイト以上) をダウンロードする場合、アプリはこれらのダウンロードをストリーミングし、既定のバッファリングを使用しないようにする必要があります。 既定のバッファリングを使用すると、クライアント のメモリ使用量が非常に大きくなり、パフォーマンスが低下する可能性があります。
HttpClient を使用して HTTP サーバーに接続する方法を示す C#/VB/C++ と XAML のサンプル コードについては、「HttpClient」を参照してください。
HttpClient を使用して HTTP サーバーに接続する方法を示す JavaScript と HTML のサンプル コードについては、「Windows.Web.Http を使用した HTTP サーバーへの接続」を参照してください。