WebRequest.Proxy WebRequest.Proxy WebRequest.Proxy WebRequest.Proxy Property

定义

当在子类中被重写时,获取或设置用于访问此 Internet 资源的网络代理。When overridden in a descendant class, gets or sets the network proxy to use to access this Internet resource.

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; }
member this.Proxy : System.Net.IWebProxy with get, set
Public Overridable Property Proxy As IWebProxy

属性值

用于访问 Internet 资源的 IWebProxyThe IWebProxy to use to access the Internet resource.

异常

当未在子类中重写该属性时,试图获取或设置该属性。Any attempt is made to get or set the property, when the property is not overridden in a descendant class.

示例

以下示例显示当前网络代理地址,并允许用户分配新的网络代理地址和端口号。The following example displays the current network proxy address and allows the user to assign a new network proxy address and port number.

// 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
         

注解

Proxy属性标识请求用于访问 Internet 资源的网络代理。The Proxy property identifies the network proxy that the request uses to access the Internet resource. 请求是通过代理服务器发出的,而不是直接连接到 Internet 资源。The request is made through the proxy server rather than directly to the Internet resource.

备注

类是一个abstract类。 WebRequestThe WebRequest class is an abstract class. WebRequest实例在运行时的实际行为由WebRequest.Create方法返回的子代类确定。The actual behavior of WebRequest instances at run time is determined by the descendant class returned by the WebRequest.Create method. 有关默认值和异常的详细信息,请参阅子代类的文档,例如HttpWebRequest和。 FileWebRequestFor more information about default values and exceptions, see the documentation for the descendant classes, such as HttpWebRequest and FileWebRequest.

适用于

另请参阅