WebRequest.Proxy Свойство

Определение

При переопределении в классе-потомке получает или задает сетевой прокси-сервер для доступа к этому интернет-ресурсу.

public:
 virtual property System::Net::IWebProxy ^ Proxy { System::Net::IWebProxy ^ get(); void set(System::Net::IWebProxy ^ value); };
public virtual System.Net.IWebProxy Proxy { get; set; }
public virtual System.Net.IWebProxy? Proxy { get; set; }
member this.Proxy : System.Net.IWebProxy with get, set
Public Overridable Property Proxy As IWebProxy

Значение свойства

IWebProxy для доступа к интернет-ресурсу.

Исключения

Любая попытка получить или задать свойство, если свойство не переопределяется в классе-потомке.

Примеры

В следующем примере отображается текущий сетевой прокси-адрес и пользователь может назначить новый сетевой прокси-адрес и номер порта.

// Create a new request to the mentioned URL.
WebRequest^ myWebRequest = WebRequest::Create( "http://www.contoso.com" );

WebProxy^ myProxy = gcnew WebProxy;
// Obtain the Proxy Prperty of the  Default browser.
myProxy = (WebProxy^)(myWebRequest->Proxy);

// Print myProxy address to the console.
Console::WriteLine( "\nThe actual default Proxy settings are {0}", myProxy->Address );
try
{
   Console::WriteLine( "\nPlease enter the new Proxy Address to be set " );
   Console::WriteLine( "The format of the address should be http://proxyUriAddress:portaddress" );
   Console::WriteLine( "Example:http://proxyadress.com:8080" );
   String^ proxyAddress;
   proxyAddress = Console::ReadLine();

   if ( proxyAddress->Length == 0 )
   {
      myWebRequest->Proxy = myProxy;
   }
   else
   {
      Console::WriteLine( "\nPlease enter the Credentials" );
      Console::WriteLine( "Username:" );
      String^ username;
      username = Console::ReadLine();
      Console::WriteLine( "\nPassword:" );
      String^ password;
      password = Console::ReadLine();
      
      // Create a new Uri object.
      Uri^ newUri = gcnew Uri( proxyAddress );
      
      // Associate the new Uri object to the myProxy object.
      myProxy->Address = newUri;
      
      // Create a NetworkCredential object and is assign to the Credentials
      // property of the Proxy object.
      myProxy->Credentials = gcnew NetworkCredential( username,password );
      myWebRequest->Proxy = myProxy;
   }
   Console::WriteLine( "\nThe Address of the  new Proxy settings are {0}", myProxy->Address );
   WebResponse^ myWebResponse = myWebRequest->GetResponse();
   
   // Print the  HTML contents of the page to the console.
   Stream^ streamResponse = myWebResponse->GetResponseStream();
   StreamReader^ streamRead = gcnew StreamReader( streamResponse );
   array<Char>^ readBuff = gcnew array<Char>(256);
   int count = streamRead->Read( readBuff, 0, 256 );
   Console::WriteLine( "\nThe contents of the Html pages are :" );
   while ( count > 0 )
   {
      String^ outputData = gcnew String( readBuff,0,count );
      Console::Write( outputData );
      count = streamRead->Read( readBuff, 0, 256 );
   }
   
   // Close the Stream object.
   streamResponse->Close();
   streamRead->Close();
   
   // Release the HttpWebResponse Resource.
   myWebResponse->Close();
   Console::WriteLine( "\nPress any key to continue........." );
   Console::Read();
}
catch ( UriFormatException^ e ) 
{
   Console::WriteLine( "\nUriFormatException is thrown->Message is {0}", e->Message );
   Console::WriteLine( "\nThe format of the myProxy address you entered is invalid" );
   Console::WriteLine( "\nPress any key to continue........." );
   Console::Read();
}
   // Create a new request to the mentioned URL.				
   WebRequest myWebRequest=WebRequest.Create("http://www.contoso.com");

   WebProxy myProxy=new WebProxy();
   // Obtain the Proxy Prperty of the  Default browser.  
   myProxy=(WebProxy)myWebRequest.Proxy;

   // Print myProxy address to the console.
   Console.WriteLine("\nThe actual default Proxy settings are {0}",myProxy.Address);
try
   {
       Console.WriteLine("\nPlease enter the new Proxy Address to be set ");
       Console.WriteLine("The format of the address should be http://proxyUriAddress:portaddress");
       Console.WriteLine("Example:http://proxyadress.com:8080");
       string proxyAddress;
       proxyAddress =Console.ReadLine();

       if(proxyAddress.Length==0)
       {
           myWebRequest.Proxy=myProxy;
       }
       else
       {
           Console.WriteLine("\nPlease enter the Credentials");
           Console.WriteLine("Username:");
           string username;
           username =Console.ReadLine();
           Console.WriteLine("\nPassword:");
           string password;
           password =Console.ReadLine();

           // Create a new Uri object.
           Uri newUri=new Uri(proxyAddress);

           // Associate the new Uri object to the myProxy object.
           myProxy.Address=newUri;

           // Create a NetworkCredential object and is assign to the Credentials property of the Proxy object.
           myProxy.Credentials=new NetworkCredential(username,password);
           myWebRequest.Proxy=myProxy;
       }
       Console.WriteLine("\nThe Address of the  new Proxy settings are {0}",myProxy.Address);
       WebResponse myWebResponse=myWebRequest.GetResponse();

       // Print the  HTML contents of the page to the console.
       Stream streamResponse=myWebResponse.GetResponseStream();
       StreamReader streamRead = new StreamReader( streamResponse );
       Char[] readBuff = new Char[256];
       int count = streamRead.Read( readBuff, 0, 256 );
       Console.WriteLine("\nThe contents of the Html pages are :");	
       while (count > 0) 
       {
           String outputData = new String(readBuff, 0, count);
           Console.Write(outputData);
           count = streamRead.Read(readBuff, 0, 256);
       }

       // Close the Stream object.
       streamResponse.Close();
       streamRead.Close();

       // Release the HttpWebResponse Resource.
       myWebResponse.Close();
       Console.WriteLine("\nPress any key to continue.........");
       Console.Read();				
   }
   catch(UriFormatException e)
   {
       Console.WriteLine("\nUriFormatException is thrown.Message is {0}",e.Message);
       Console.WriteLine("\nThe format of the myProxy address you entered is invalid");
       Console.WriteLine("\nPress any key to continue.........");
       Console.Read();
   }

  ' Create a new request to the mentioned URL.				
  Dim myWebRequest As WebRequest = WebRequest.Create("http://www.contoso.com")
  Dim myProxy As New WebProxy()

  ' Obtain the Proxy Prperty of the  Default browser. 
   myProxy = CType(myWebRequest.Proxy, WebProxy)

  ' Print myProxy address to the console.
  Console.WriteLine(ControlChars.Cr + "The actual default Proxy settings are {0}", myProxy.Address)

  Try
      Console.WriteLine(ControlChars.Cr + "Please enter the new Proxy Address to be set ")
      Console.WriteLine("The format of the address should be http://proxyUriAddress:portaddress")
      Console.WriteLine("Example:http://moon.proxy.com:8080")
      Dim proxyAddress As String
      proxyAddress = Console.ReadLine()

      If proxyAddress.Length = 0 Then
          myWebRequest.Proxy = myProxy
      Else
          Console.WriteLine(ControlChars.Cr + "Please enter the Credentials")
          Console.WriteLine("Username:")
          Dim username As String
          username = Console.ReadLine()
          Console.WriteLine(ControlChars.Cr + "Password:")
          Dim password As String
          password = Console.ReadLine()

         ' Create a new Uri object.
          Dim newUri As New Uri(proxyAddress)

          ' Associate the new Uri object to the myProxy object.
          myProxy.Address = newUri

          ' Create a NetworkCredential object and is assign to the Credentials property of the Proxy object.
          myProxy.Credentials = New NetworkCredential(username, password)
          myWebRequest.Proxy = myProxy
          
      End If
      Console.WriteLine(ControlChars.Cr + "The Address of the  new Proxy settings are {0}", myProxy.Address)
      Dim myWebResponse As WebResponse = myWebRequest.GetResponse()

      ' Print the  HTML contents of the page to the console.
      Dim streamResponse As Stream = myWebResponse.GetResponseStream()

      Dim streamRead As New StreamReader(streamResponse)
      Dim readBuff(256) As [Char]
      Dim count As Integer = streamRead.Read(readBuff, 0, 256)
      Console.WriteLine(ControlChars.Cr + "The contents of the Html pages are :")

      While count > 0
          Dim outputData As New [String](readBuff, 0, count)
          Console.Write(outputData)
          count = streamRead.Read(readBuff, 0, 256)

      End While

 ' Close the Stream object.
      streamResponse.Close()
streamRead.Close()

' Release the HttpWebResponse Resource.
  myWebResponse.Close()
      Console.WriteLine(ControlChars.Cr + "Press any key to continue.........")
      Console.Read()
  Catch e As UriFormatException
      Console.WriteLine(ControlChars.Cr + "{0}", e.Message)
      Console.WriteLine(ControlChars.Cr + "The format of the myProxy address you entered is invalid")
   End Try

Комментарии

Осторожность

WebRequest, HttpWebRequest, ServicePointи WebClient устарели, и их не следует использовать для новой разработки. Вместо этого используйте HttpClient.

Свойство Proxy определяет сетевой прокси-сервер, который запрос использует для доступа к интернет-ресурсу. Запрос выполняется через прокси-сервер, а не непосредственно к интернет-ресурсу.

Заметка

Класс WebRequest — это класс abstract. Фактическое поведение экземпляров WebRequest во время выполнения определяется классом-потомком, возвращаемым методом WebRequest.Create. Дополнительные сведения о значениях и исключениях по умолчанию см. в документации по классам-потомкам, таким как HttpWebRequest и FileWebRequest.

Применяется к

См. также раздел