HTTP GET in VB.NET

后端 未结 7 628
离开以前
离开以前 2020-11-27 15:25

What is the best way to issue a http get in VB.net? I want to get the result of a request like http://api.hostip.info/?ip=68.180.206.184

相关标签:
7条回答
  • 2020-11-27 16:11

    Use the WebRequest class

    This is to get an image:

    Try
        Dim _WebRequest As System.Net.WebRequest = Nothing
        _WebRequest = System.Net.WebRequest.Create(http://api.hostip.info/?ip=68.180.206.184)
    Catch ex As Exception
        Windows.Forms.MessageBox.Show(ex.Message)
        Exit Sub
    End Try
    
    Try
        _NormalImage = Image.FromStream(_WebRequest.GetResponse().GetResponseStream())
    Catch ex As Exception
        Windows.Forms.MessageBox.Show(ex.Message)
        Exit Sub
    End Try
    
    0 讨论(0)
  • 2020-11-27 16:13

    Try this:

    WebRequest request = WebRequest.CreateDefault(RequestUrl);
    request.Method = "GET";
    
    WebResponse response;
    try { response = request.GetResponse(); }
    catch (WebException exc) { response = exc.Response; }
    
    if (response == null)
        throw new HttpException((int)HttpStatusCode.NotFound, "The requested url could not be found.");
    
    using(StreamReader reader = new StreamReader(response.GetResponseStream())) {
        string requestedText = reader.ReadToEnd();
    
        // do what you want with requestedText
    }
    

    Sorry about the C#, I know you asked for VB, but I didn't have time to convert.

    0 讨论(0)
  • 2020-11-27 16:16
    Public Function getLoginresponce(ByVal email As String, ByVal password As String) As String
        Dim requestUrl As String = "your api"
        Dim request As HttpWebRequest = TryCast(WebRequest.Create(requestUrl), HttpWebRequest)
        Dim response As HttpWebResponse = TryCast(request.GetResponse(), HttpWebResponse)
        Dim dataStream As Stream = response.GetResponseStream()
        Dim reader As New StreamReader(dataStream)
        Dim responseFromServer As String = reader.ReadToEnd()
        Dim result = responseFromServer
        reader.Close()
        response.Close()
        Return result
    End Function
    
    0 讨论(0)
  • 2020-11-27 16:17

    You should try the HttpWebRequest class.

    0 讨论(0)
  • 2020-11-27 16:18

    In VB.NET:

    Dim webClient As New System.Net.WebClient
    Dim result As String = webClient.DownloadString("http://api.hostip.info/?ip=68.180.206.184")
    

    In C#:

    System.Net.WebClient webClient = new System.Net.WebClient();
    string result = webClient.DownloadString("http://api.hostip.info/?ip=68.180.206.184");
    
    0 讨论(0)
  • 2020-11-27 16:22

    You can use the HttpWebRequest class to perform a request and retrieve a response from a given URL. You'll use it like:

    Try
        Dim fr As System.Net.HttpWebRequest
        Dim targetURI As New Uri("http://whatever.you.want.to.get/file.html")         
    
        fr = DirectCast(HttpWebRequest.Create(targetURI), System.Net.HttpWebRequest)
        If (fr.GetResponse().ContentLength > 0) Then
            Dim str As New System.IO.StreamReader(fr.GetResponse().GetResponseStream())
            Response.Write(str.ReadToEnd())
            str.Close(); 
        End If   
    Catch ex As System.Net.WebException
       'Error in accessing the resource, handle it
    End Try
    

    HttpWebRequest is detailed at: http://msdn.microsoft.com/en-us/library/system.net.httpwebrequest.aspx

    A second option is to use the WebClient class, this provides an easier to use interface for downloading web resources but is not as flexible as HttpWebRequest:

    Sub Main()
        'Address of URL
        Dim URL As String = http://whatever.com
        ' Get HTML data
        Dim client As WebClient = New WebClient()
        Dim data As Stream = client.OpenRead(URL)
        Dim reader As StreamReader = New StreamReader(data)
        Dim str As String = ""
        str = reader.ReadLine()
        Do While str.Length > 0
            Console.WriteLine(str)
            str = reader.ReadLine()
        Loop
    End Sub
    

    More info on the webclient can be found at: http://msdn.microsoft.com/en-us/library/system.net.webclient.aspx

    0 讨论(0)
提交回复
热议问题