WebRequestExtensions.SetNetworkRequirement 方法

2013/12/13

设置 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
指定所要求技术类型的枚举值之一。

用法说明

在 Visual Basic 和 C# 中,您可以对类型为 WebRequest 的任何对象调用此方法作为实例方法。使用实例方法语法来调用此方法时,忽略第一个参数。

异常条件
ArgumentNullException

requestnull

NetworkException

无法获取 request 的 HTTP Request 句柄。

NetworkException

无法获取 request 的会话句柄。

NetworkException

无法设置网络要求。

必须在调用 BeginGetResponse 之前调用此方法。否则,将引发 InvalidOperationException。

有关扩展方法的详细信息,请参见扩展方法(C# 编程指南)如何:调用扩展方法 (Visual Basic)

下面的代码示例演示如何使用 SetNetworkRequirement 扩展方法。在此示例中,需要的网络接口为 Cellular。如果手机网络网络接口不可用,将在 BeginGetResponse 方法的回调中引发 WebException 异常,在此示例中为 response_Callback。WebException 的 Message 属性包含文本“远程服务器返回错误:未找到。”。


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

Windows Phone

显示:
© 2014 Microsoft