ServicePointManager..::.FindServicePoint Method (String, IWebProxy)
This page is specific to:.NET Framework Version:
2.03.03.54
.NET Framework Class Library
ServicePointManager..::.FindServicePoint Method (String, IWebProxy)

Finds an existing ServicePoint object or creates a new ServicePoint object to manage communications with the specified Uniform Resource Identifier (URI).

Namespace:  System.Net
Assembly:  System (in System.dll)
Syntax

'Usage

Dim uriString As String
Dim proxy As IWebProxy
Dim returnValue As ServicePoint

returnValue = ServicePointManager.FindServicePoint(uriString, _
    proxy)

'Declaration

Public Shared Function FindServicePoint ( _
    uriString As String, _
    proxy As IWebProxy _
) As ServicePoint

Parameters

uriString
Type: System..::.String
The URI of the Internet resource to be contacted.
proxy
Type: System.Net..::.IWebProxy
The proxy data for this request.

Return Value

Type: System.Net..::.ServicePoint
The ServicePoint object that manages communications for the request.
Exceptions

ExceptionCondition
UriFormatException

The URI specified in uriString is invalid.

InvalidOperationException

The maximum number of ServicePoint objects defined in MaxServicePoints has been reached.

Remarks

The FindServicePoint method returns the ServicePoint object associated with the specified Internet host name. If no ServicePoint object exists for that host, the ServicePointManager object creates one.

Examples

The following code example demonstrates calling this method to access a ServicePoint object.

' This is the program entry point. It allows the user to enter 
' a server name that is used to locate its current homepage.
Public Shared Sub Main(ByVal args() As String)
    Dim proxy As String = Nothing
    Dim port As Integer = 80

    ' Define a regular expression to parse the user's input.
    ' This is a security check. It allows only
    ' alphanumeric input strings between 2 to 40 characters long.
    Dim rex As New Regex("^[a-zA-Z]\w{1,39}$")

    If args.Length = 0 Then
        ' Show how to use this program.
        showUsage()
        Return
    End If

    proxy = args(0)
    If (Not (rex.Match(proxy)).Success) Then
        Console.WriteLine("Input string format not allowed.")
        Return
    End If

    ' Create a proxy object.  
    Dim proxyAdd As String
    proxyAdd = "http://" + proxy + ":" + port.ToString()


    Dim DefaultProxy As New WebProxy(proxyAdd, True)

    ' Set the proxy that all HttpWebRequest instances use.
    WebRequest.DefaultWebProxy = DefaultProxy


    ' Get the base interface for proxy access for the 
    ' WebRequest-based classes.
    Dim Iproxy As IWebProxy = WebRequest.DefaultWebProxy

    ' Set the maximum number of ServicePoint instances to maintain.
    ' Note that, if a ServicePoint instance for that host already 
    ' exists when your application requests a connection to
    ' an Internet resource, the ServicePointManager object
    ' returns this existing ServicePoint. If none exists 
    ' for that host, it creates a new ServicePoint instance.
    ServicePointManager.MaxServicePoints = 4

    ' Set the maximum idle time of a ServicePoint instance to 10 seconds.
    ' After the idle time expires, the ServicePoint object is eligible for
    ' garbage collection and cannot be used by the ServicePointManager.
    ServicePointManager.MaxServicePointIdleTime = 10000


    ServicePointManager.UseNagleAlgorithm = True
    ServicePointManager.Expect100Continue = True
    ServicePointManager.CheckCertificateRevocationList = True
    ServicePointManager.DefaultConnectionLimit = _
        ServicePointManager.DefaultPersistentConnectionLimit
    ' Create the Uri object for the resource you want to access.
    Dim MS As New Uri("http://msdn.microsoft.com/")

    ' Use the FindServicePoint method to find an existing 
    ' ServicePoint object or to create a new one.   
    Dim servicePoint As ServicePoint = ServicePointManager.FindServicePoint(MS, Iproxy)
    ShowProperties(servicePoint)
    Dim hashCode As Integer = servicePoint.GetHashCode()
    Console.WriteLine(("Service point hashcode: " + hashCode.ToString()))

    ' Make a request with the same scheme identifier and host fragment
    ' used to create the previous ServicePoint object.
    makeWebRequest(hashCode, "http://msdn.microsoft.com/library/")

End Sub 'Main



int main() 
{
    String* args[] = Environment::GetCommandLineArgs();

    int port = 80;

    // Define a regular expression to parse the user's input.
    // This is a security check. It allows only
    // alphanumeric input strings between 2 to 40 characters long.
    Regex* rex = new Regex(S"^[a-zA-Z]\\w{1,39}$");

    if (args->Length < 2)
    {
        showUsage();
        return -1;
    }

    String* proxy = args[1];
    if ((rex->Match(proxy))->Success != true)
    {
        Console::WriteLine(S"Input string format not allowed.");
        return -1;
    }
    String* proxyAdd = String::Format( S"http://{0}:{1}", proxy, __box(port));
    // Create a proxy object.  
    WebProxy* DefaultProxy = new WebProxy(proxyAdd, true);

    // Set the proxy that all HttpWebRequest instances use.
    GlobalProxySelection::Select = DefaultProxy;   

    // Get the base interface for proxy access for the 
    // WebRequest-based classes.
    IWebProxy* Iproxy = GlobalProxySelection::Select;        

    // Set the maximum number of ServicePoint instances to 
    // maintain. If a ServicePoint instance for that host already 
    // exists when your application requests a connection to
    // an Internet resource, the ServicePointManager object
    // returns this existing ServicePoint instance. If none exists 
    // for that host, it creates a new ServicePoint instance.
    ServicePointManager::MaxServicePoints = 4;

    // Set the maximum idle time of a ServicePoint instance to 10 seconds.
    // After the idle time expires, the ServicePoint object is eligible for
    // garbage collection and cannot be used by the ServicePointManager.
    ServicePointManager::MaxServicePointIdleTime = 1000;


    ServicePointManager::UseNagleAlgorithm = true;
    ServicePointManager::Expect100Continue = true;
    ServicePointManager::CheckCertificateRevocationList = true;
    ServicePointManager::DefaultConnectionLimit = ServicePointManager::DefaultPersistentConnectionLimit;
    // Create the Uri object for the resource you want to access.
    Uri* MS = new Uri(S"http://msdn.microsoft.com/");        

    // Use the FindServicePoint method to find an existing 
    // ServicePoint object or to create a new one.   
    ServicePoint* servicePoint  = ServicePointManager::FindServicePoint(MS, Iproxy);
    ShowProperties(servicePoint); 
    int hashCode = servicePoint->GetHashCode();
    Console::WriteLine(S"Service point hashcode: {0}", __box(hashCode));

    // Make a request with the same scheme identifier and host fragment
    // used to create the previous ServicePoint object.
    makeWebRequest(hashCode, S"http://msdn.microsoft.com/library/");
}


Platforms

Windows 7, Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2008 R2, Windows Server 2008, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98, Windows CE, Windows Mobile for Smartphone, Windows Mobile for Pocket PC

The .NET Framework and .NET Compact Framework do not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.
Version Information

.NET Framework

Supported in: 3.5, 3.0, 2.0, 1.1, 1.0

.NET Compact Framework

Supported in: 3.5, 2.0, 1.0
See Also

Reference

© 2010 Microsoft Corporation. All rights reserved.   Terms of Use | Trademarks | Privacy Statement
Page view tracker
Rate the Lightweight library
x
Lightweight builds on ScriptFree (loband) by adding features you've requested: a SearchBox and default code language selection.
Do you like the SearchBox?
Do you like the tabbed code blocks?
How useful is this topic?
Tell us more.
Thanks
x
You're helping to improve MSDN Online.
Feedback
Switch View
Classic
Lightweight Beta
ScriptFree
Switch View