WebRequest.Proxy 属性
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
在后代类中重写时,获取或设置用于访问此 Internet 资源的网络代理。
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
属性值
用于访问 Internet 资源的 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 属性标识请求用于访问 Internet 资源的网络代理。 请求是通过代理服务器发出的,而不是直接通过 Internet 资源发出。
注意
WebRequest 类是 abstract
类。 运行时 WebRequest 实例的实际行为由 WebRequest.Create 方法返回的后代类确定。 有关默认值和异常的详细信息,请参阅子代类的文档,例如 HttpWebRequest 和 FileWebRequest。