情報
要求されたトピックは次のとおりです。しかし、このトピックはこのライブラリには含まれていません。

WebRequestExtensions.SetNetworkRequirement メソッド

2013/12/12

携帯電話技術または携帯電話以外の技術に使う Web 要求の要件を設定します。

Namespace:  Microsoft.Phone.Net.NetworkInformation
アセンブリ:  Microsoft.Phone (Microsoft.Phone.dll 内)

public static void SetNetworkRequirement(
	this WebRequest request,
	NetworkSelectionCharacteristics requirement
)

パラメーター

request
型: System.Net.WebRequest
要件を設定する Web 要求。
requirement
型: Microsoft.Phone.Net.NetworkInformation.NetworkSelectionCharacteristics
必要とされるテクノロジの種類を指定する列挙値の 1 つ。

使用上の注意

Visual Basic および C# では、このメソッドを、WebRequest 型の任意のオブジェクトのインスタンス メソッドとして呼び出すことができます。インスタンス メソッド構文を使用してこのメソッドを呼び出す場合は、最初のパラメーターを省略します。

例外条件
ArgumentNullException

requestnull です。

NetworkException

request の HTTP 要求ハンドルを取得できません。

NetworkException

request のセッション ハンドルを取得できません。

NetworkException

ネットワーク要件を設定できません。

このメソッドは、BeginGetResponse の呼び出し前に呼び出す必要があります。そうしない場合は、InvalidOperationException がスローされます。

拡張メソッドの詳細については、「拡張メソッド (C# プログラミング ガイド)」または「方法: 拡張メソッドを呼び出す (Visual Basic)」を参照してください。

SetNetworkRequirement 拡張メソッドを使用する方法を次のコード例に示します。この例では、必要なネットワーク インターフェイスは Cellular です。携帯ネットワーク インターフェイスが使用できない場合、この例では response_Callback である BeginGetResponse メソッドのコールバックで、WebException 例外がスローされます。WebException の Message プロパティには、テキスト “リモート サーバーがエラーを返しました:NotFound.” が含まれています。


private void StartDownload()
{
   HttpWebRequest hwr;
   hwr = (HttpWebRequest)HttpWebRequest.Create(new Uri("http://www.contoso.com", UriKind.Absolute));

   // Call SetNetworkRequirement on an HttpWebRequest before calling BeginGetResponse or
   // an InvalidOperationException will be thrown.
   hwr.SetNetworkRequirement(NetworkSelectionCharacteristics.Cellular);
   hwr.BeginGetResponse(new AsyncCallback(response_Callback), hwr);                     
}       

private void response_Callback(IAsyncResult asyncResult)
{                      
   HttpWebRequest httpWebRequest = (HttpWebRequest)asyncResult.AsyncState;
   try
   {
      WebResponse response = httpWebRequest.EndGetResponse(asyncResult);
   }
   catch (WebException webEx)
   {
      Dispatcher.BeginInvoke(() =>
      {
         MessageBox.Show(webEx.Message);
      });
   }
}        

Windows Phone OS

サポート: 8.0, 7.1

表示: