HttpWebRequest.Proxy 属性

定义

获取或设置请求的代理信息。Gets or sets proxy information for the request.

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

属性值

用于代理请求的 IWebProxy 对象。The IWebProxy object to use to proxy the request. 默认值通过调用 Select 属性设置。The default value is set by calling the Select property.

例外

Proxy 设置为 nullProxy is set to null.

调用方无权执行所请求的操作。The caller does not have permission for the requested operation.

示例

下面的代码示例使用 Proxy 方法获取请求的代理信息。The following code example uses the Proxy method to get the proxy information for the request.

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

// Obtain the 'Proxy' of the  Default browser.  
IWebProxy ^ proxy = myWebRequest->Proxy;
// Print the Proxy Url to the console.
if (proxy) 
{
    Console::WriteLine("Proxy: {0}",
        proxy->GetProxy(myWebRequest->RequestUri));
} 
else 
{
    Console::WriteLine("Proxy is null; no proxy will be used");
}

WebProxy ^ myProxy = gcnew WebProxy;

Console::WriteLine("\nPlease enter the new Proxy Address that is to be set:");
Console::WriteLine("(Example:http://myproxy.example.com:port)");
String ^ proxyAddress;

try 
{
    proxyAddress = Console::ReadLine();
    if (proxyAddress->Length > 0) {
        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 newUri object to 'myProxy' object so that new myProxy settings can be set.
        myProxy->Address = newUri;
        // Create a NetworkCredential object and associate it with the Proxy property of request object.
        myProxy->Credentials =
            gcnew NetworkCredential(username, password);
        myWebRequest->Proxy = myProxy;
    }
    Console::WriteLine("\nThe Address of the  new Proxy settings are {0}",
                  myProxy->Address);
    HttpWebResponse ^ myWebResponse =
        (HttpWebResponse ^) (myWebRequest->GetResponse());
// Create a new request to the mentioned URL.				
HttpWebRequest myWebRequest=(HttpWebRequest)WebRequest.Create("http://www.microsoft.com");

// Obtain the 'Proxy' of the  Default browser.  
IWebProxy proxy = myWebRequest.Proxy;
// Print the Proxy Url to the console.
if (proxy != null)
{
    Console.WriteLine("Proxy: {0}", proxy.GetProxy(myWebRequest.RequestUri));
} 
else
{
    Console.WriteLine("Proxy is null; no proxy will be used");
}

WebProxy myProxy=new WebProxy();

Console.WriteLine("\nPlease enter the new Proxy Address that is to be set:");
Console.WriteLine("(Example:http://myproxy.example.com:port)");
string proxyAddress;

try
{
    proxyAddress =Console.ReadLine();
    if(proxyAddress.Length>0)
    {
        Console.WriteLine("\nPlease enter the Credentials (may not be needed)");
        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 newUri object to 'myProxy' object so that new myProxy settings can be set.
        myProxy.Address=newUri;
        // Create a NetworkCredential object and associate it with the 
        // Proxy property of request object.
        myProxy.Credentials=new NetworkCredential(username,password);
        myWebRequest.Proxy=myProxy;
    }
    Console.WriteLine("\nThe Address of the  new Proxy settings are {0}",myProxy.Address);
    HttpWebResponse myWebResponse=(HttpWebResponse)myWebRequest.GetResponse();
' Create a new request to the mentioned URL.				
Dim myWebRequest As HttpWebRequest = CType(WebRequest.Create("http://www.microsoft.com"), HttpWebRequest)

      ' Obtain the 'Proxy' of the  Default browser.  
      Dim proxy as IWebProxy = CType(myWebRequest.Proxy, IWebProxy)
      ' Print the Proxy Url to the console.
If Not proxy Is Nothing Then
    Console.WriteLine("Proxy: {0}", proxy.GetProxy(myWebRequest.RequestUri))
Else
    Console.WriteLine("Proxy is null; no proxy will be used")
End If

Dim myProxy As New WebProxy()

Console.WriteLine(ControlChars.Cr + "Please enter the new Proxy Address that is to be set ")
Console.WriteLine("(Example:http://myproxy.example.com:port)")
Dim proxyAddress As String
Try
    proxyAddress = Console.ReadLine()
    If proxyAddress.Length = 0 Then
        myWebRequest.Proxy = myProxy
    Else
        Console.WriteLine(ControlChars.Cr + "Please enter the Credentials (may not be needed)")
        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 newUri object to 'myProxy' object so that new myProxy settings can be set.
        myProxy.Address = newUri
        ' Create a NetworkCredential object and associate it with the Proxy property of request 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 HttpWebResponse = CType(myWebRequest.GetResponse(), HttpWebResponse)

注解

Proxy 属性标识用于处理对 Internet 资源的请求的 WebProxy 对象。The Proxy property identifies the WebProxy object to use to process requests to Internet resources. 若要指定不应使用代理,请将 Proxy 属性设置为 GlobalProxySelection.GetEmptyWebProxy 方法返回的代理实例。To specify that no proxy should be used, set the Proxy property to the proxy instance returned by the GlobalProxySelection.GetEmptyWebProxy method.

本地计算机或应用程序配置文件可以指定使用默认代理。The local computer or application config file may specify that a default proxy be used. 如果指定 Proxy 属性,则 Proxy 属性中的代理设置将覆盖本地计算机或应用程序配置文件,HttpWebRequest 实例将使用指定的代理设置。If the Proxy property is specified, then the proxy settings from the Proxy property override the local computer or application config file and the HttpWebRequest instance will use the proxy settings specified. 如果未在配置文件中指定代理,并且未指定 Proxy 属性,则 HttpWebRequest 类将使用从本地计算机上的 Internet Explorer 继承的代理设置。If no proxy is specified in a config file and the Proxy property is unspecified, the HttpWebRequest class uses the proxy settings inherited from Internet Explorer on the local computer. 如果 Internet Explorer 中没有代理设置,请求将直接发送到服务器。If there are no proxy settings in Internet Explorer, the request is sent directly to the server.

HttpWebRequest 类分析代理绕过列表,其中通配符字符从 Internet Explorer 继承,与绕过列表直接由 Internet Explorer 分析。The HttpWebRequest class parses a proxy bypass list with wildcard characters inherited from Internet Explorer the same as the bypass list is parsed directly by Internet Explorer. 例如,HttpWebRequest 类会将 Internet Explorer 中的 "nt *" 跳过列表分析为 "nt.*" 的正则表达式。For example, the HttpWebRequest class will parse a bypass list of "nt*" from Internet Explorer as a regular expression of "nt.*". 因此,URL "http://nt.com" 会绕过代理使用 HttpWebRequest 类和使用 Internet Explorer。So a URL of "http://nt.com" would bypass the proxy using the HttpWebRequest class and using Internet Explorer.

HttpWebRequest 类支持本地代理跳过。The HttpWebRequest class supports local proxy bypass. 如果满足以下任一条件,则类将目标视为本地:The class considers a destination to be local if any of the following conditions are met:

  • 目标包含平面名称(URL 中没有点)。The destination contains a flat name (no dots in the URL).

  • 目标包含环回地址(LoopbackIPv6Loopback),或者目标包含分配给本地计算机的 IPAddressThe destination contains a loopback address (Loopback or IPv6Loopback) or the destination contains an IPAddress assigned to the local computer.

  • 目标的域后缀与本地计算机的域后缀(DomainName)匹配。The domain suffix of the destination matches the local computer's domain suffix (DomainName).

通过调用 GetRequestStreamBeginGetRequestStreamGetResponseBeginGetResponse 方法启动请求后,更改 Proxy 属性会引发 InvalidOperationExceptionChanging the Proxy property after the request has been started by calling the GetRequestStream, BeginGetRequestStream, GetResponse, or BeginGetResponse method throws an InvalidOperationException. 有关 proxy 元素的信息,请参阅< defaultProxy>元素(网络设置)For information on the proxy element see <defaultProxy> Element (Network Settings).

适用于

另请参阅