MSDN Library
콘텐츠의 테이블 축소
콘텐츠의 테이블 확장
정보
요청한 주제가 아래에 표시됩니다. 그러나 이 주제는 이 라이브러리에 포함되지 않습니다.

WebRequestExtensions.SetNetworkPreference 메서드

2013-12-13

통신망 기술 또는 비통신망 기술을 사용하여 웹 요청의 기본 설정을 구성합니다.

Namespace:  Microsoft.Phone.Net.NetworkInformation
어셈블리:  Microsoft.Phone(Microsoft.Phone.dll)

public static void SetNetworkPreference(
	this WebRequest request,
	NetworkSelectionCharacteristics preference
)

매개 변수

request
형식: System.Net.WebRequest
기본 설정을 구성할 웹 요청입니다.
preference
형식: Microsoft.Phone.Net.NetworkInformation.NetworkSelectionCharacteristics
기본으로 설정될 기술 형식을 지정하는 열거형 값 중 하나입니다.

사용 정보

Visual Basic 및 C#에서는 이 메서드를 WebRequest 형식의 모든 개체에서 인스턴스 메서드로 호출할 수 있습니다. 인스턴스 메서드 구문을 사용하여 이 메서드를 호출할 경우에는 첫 번째 매개 변수를 생략합니다.

예외조건
ArgumentNullException

requestnull인 경우

NetworkException

request에 대한 HTTP 요청 핸들을 가져올 수 없는 경우.

NetworkException

request에 대한 세션 핸들을 가져올 수 없습니다.

NetworkException

네트워크 기본 설정을 구성할 수 없습니다.

이 메서드는 BeginGetResponse를 호출하기 전에 호출해야 합니다. 그렇지 않으면 InvalidOperationException이 발생합니다.

확장 메서드에 대한 자세한 내용은 확장 메서드(C# 프로그래밍 가이드) 또는 방법: 확장 메서드 호출(Visual Basic)을 참조하세요.

다음 코드 예제에서는 SetNetworkPreference 확장 메서드를 사용하는 방법을 보여 줍니다. 이 예제에서 기본 설정 네트워크 인터페이스는 Cellular입니다. 셀룰러 네트워크 인터페이스를 사용할 수 없으면 다른 네트워크 인터페이스가 사용됩니다. 사용한 네트워크 인터페이스를 확인하기 위해 요청 콜백에서 GetCurrentNetworkInterface가 호출됩니다.


private void StartDownload()
{
   HttpWebRequest request;

   // A NetworkException with the error NetworkError.WebRequestAlreadyFinished will
   // be thrown if GetCurrentNetworkInterface is called after the request is complete.
   // The uri string used here is for illustration purposes only. It may complete before
   // you call GetCurrentNetworkInterface. Replace this with a longer-running request if needed.
   request = (HttpWebRequest)WebRequest.Create("http://www.contoso.com/example.aspx");
   request.AllowReadStreamBuffering = false;

   // Our preference, for this example, is a cellular network interface. 
   // Call SetNetworkPreference on an HttpWebRequest before calling BeginGetResponse or
   // an InvalidOperationException will be thrown.
   request.SetNetworkPreference(NetworkSelectionCharacteristics.Cellular);
   IAsyncResult result = (IAsyncResult)request.BeginGetResponse(new AsyncCallback(response_Callback), request);                     
}       

private void response_Callback(IAsyncResult asyncResult)
{                      
   HttpWebRequest request = (HttpWebRequest)asyncResult.AsyncState;

   // Check to see what network interface is being used. 
   // The call to GetCurrentNetworkInterface must be invoked on the UI thread.
   Dispatcher.BeginInvoke(() =>
   {
      try
      {
         NetworkInterfaceInfo ni = request.GetCurrentNetworkInterface();

      // If a cellular interface was available, we should see that here, since that was our
      // preference. Otherwise, we will get a different network interface type, such as Ethernet
      System.Diagnostics.Debug.WriteLine(ni.InterfaceType.ToString());    
      }
      catch (NetworkException networkException)
      {
         // If the HttpWebRequest was not long running, then this exception will be thrown for
         // the GetCurrentNetworkInterface above.
         if (networkException.NetworkErrorCode == NetworkError.WebRequestAlreadyFinished)
         {
            System.Diagnostics.Debug.WriteLine("Cannot call GetCurrentNetworkInterface if the web request is already complete");
         }
      }
   });       
}               
 

Windows Phone OS

지원되는 버전: 8.0, 7.1

Windows Phone

표시:
© 2016 Microsoft