Windows.Web.Http 名前空間

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 の言語プロジェクションごとに以前に必要だった異なる機能に置き換えます。

Windows.Web.Http および関連する名前空間のクラスは、HTTP および REST 開発のすべてのレベルを対象とします。

  • 基本的な HTTP 開発者
  • サイト固有の HTTP ライブラリ開発者
  • 高度な HTTP 開発者

基本的な HTTP 開発者の場合、新しい API には、最も一般的なタスクを処理するためのシンプルなインターフェイスと、ほとんどの環境で動作する必要がある認証の適切な既定値があります。 ライブラリ開発者の場合、一貫性のあるオブジェクト モデルと複数言語のサポートは、すべての言語の開発者向けに 1 回ライブラリを記述できることを意味します。 高度な HTTP 開発者向けに、新しい API には豊富な機能セットが含まれています。

Windows.Web.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 ヘッダーは、取得または設定されるプロパティとして HttpRequestMessageHttpResponseMessage に関連付けられます。

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 サーバーへの接続」を参照してください。