Search code examples
c#vb.netdelegateshtml-agility-pack

Convert htmlweb delegate from C# to vb.net


I need to convert the code found here to its vb.net equivalent, what can I try?

Excerpt of the code:

/// <summary>
/// Represents the method that will handle the PreRequest event.
/// </summary>
public delegate bool PreRequestHandler(HttpWebRequest request);

    
//And they call that delegate right before making the GetResponse call:
if (PreRequest != null)
{
    // allow our user to change the request at will
    if (!PreRequest(req))
    {
        return HttpStatusCode.ResetContent;
    }              
}

HttpWebResponse resp;

try
{
    resp = req.GetResponse() as HttpWebResponse;
}
    
//So all you have to do is assign a delegate to PreRequest and set your timeout within that delegate:

var web = new HtmlWeb();
web.PreRequest = delegate(HttpWebRequest webRequest)
{
     webRequest.Timeout = 4;
     return true;
};
var doc = web.Load("http://www.msn.com/");

Solution

  • ''' <summary> 
    ''' Represents the method that will handle the PreRequest event. 
    ''' </summary> 
    Public Delegate Function PreRequestHandler(ByVal request As HttpWebRequest) As Boolean
    
    
    'And they call that delegate right before making the GetResponse call: 
    If PreRequest IsNot Nothing Then
        ' allow our user to change the request at will 
        If Not PreRequest(req) Then
            Return HttpStatusCode.ResetContent
        End If
    End If
    
    Dim resp As HttpWebResponse
    
    Try
        resp = TryCast(req.GetResponse(), HttpWebResponse)
    End Try
    
    'So all you have to do is assign a delegate to PreRequest and set your timeout within that delegate: 
    
    Dim web = New HtmlWeb()
    web.PreRequest = Function(webRequest As HttpWebRequest)
         webRequest.Timeout = 4
         Return [True]
    End Function
    Dim doc = web.Load("http://www.msn.com/")