Export (0) Print
Expand All

WebRequest.Proxy Property

When overridden in a descendant class, gets or sets the network proxy to use to access this Internet resource.

[Visual Basic]
Public Overridable Property Proxy As IWebProxy
[C#]
public virtual IWebProxy Proxy {get; set;}
[C++]
public: __property virtual IWebProxy* get_Proxy();
public: __property virtual void set_Proxy(IWebProxy*);
[JScript]
public function get Proxy() : IWebProxy;
public function set Proxy(IWebProxy);

Property Value

The IWebProxy to use to access the Internet resource.

Exceptions

Exception Type Condition
NotSupportedException Any attempt is made to get or set the property, when the property is not overridden in a descendant class.

Remarks

The Proxy property identifies the network proxy that the request uses to access the Internet resource. The request is made through the proxy server rather than directly to the Internet resource.

Note   The WebRequest class is an abstract (MustInherit in Visual Basic) class. The actual behavior of WebRequest instances at run time is determined by the descendant class returned by the WebRequest.Create method. For more information about default values and exceptions, see the documentation for the descendant classes, such as HttpWebRequest and FileWebRequest.

Example

[Visual Basic, C#, C++] The following example displays the current network proxy address and allows the user to assign a new network proxy address and port number.

[Visual Basic] 

' 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
 

[C#] 
// 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();
}

[C++] 
// Create a new request to the mentioned URL.
WebRequest* myWebRequest = WebRequest::Create(S"http://www.contoso.com");

WebProxy* myProxy = new WebProxy();
// Obtain the Proxy Prperty of the  Default browser.
myProxy = dynamic_cast<WebProxy*>(myWebRequest->Proxy);

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

   if (proxyAddress->Length==0) {
      myWebRequest->Proxy=myProxy;
   } else {
      Console::WriteLine(S"\nPlease enter the Credentials");
      Console::WriteLine(S"Username:");
      String* username;
      username =Console::ReadLine();
      Console::WriteLine(S"\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(S"\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(S"\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(S"\nPress any key to continue.........");
   Console::Read();
} catch (UriFormatException* e) {
   Console::WriteLine(S"\nUriFormatException is thrown->Message is {0}", e->Message);
   Console::WriteLine(S"\nThe format of the myProxy address you entered is invalid");
   Console::WriteLine(S"\nPress any key to continue.........");
   Console::Read();
}

[JScript] No example is available for JScript. To view a Visual Basic, C#, or C++ example, click the Language Filter button Language Filter in the upper-left corner of the page.

Requirements

Platforms: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 family, .NET Compact Framework, Common Language Infrastructure (CLI) Standard

See Also

WebRequest Class | WebRequest Members | System.Net Namespace | IWebProxy | WebProxy | HttpWebRequest.Proxy

Show:
© 2014 Microsoft