HTTP GET in VB.NET

Quelle est la meilleure façon de délivrer un http get dans VB.net? Je veux obtenir le résultat d'une requête de la forme http://api.hostip.info/?ip=68.180.206.184

34
demandé sur notandy 2008-09-18 17:28:21

7 réponses

dans VB.NET:

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

En C#:

System.Net.WebClient webClient = new System.Net.WebClient();
string result = webClient.DownloadString("http://api.hostip.info/?ip=68.180.206.184");
61
répondu hangy 2012-03-23 16:05:14

vous pouvez utiliser la classe HttpWebRequest pour exécuter une requête et récupérer une réponse à partir d'une URL donnée. Vous allez l'utiliser comme ceci:

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 est détaillé à: http://msdn.microsoft.com/en-us/library/system.net.httpwebrequest.aspx

une seconde option est d'utiliser la classe WebClient, ce qui fournit une interface plus facile à utiliser pour télécharger des ressources web, mais n'est pas aussi flexible que 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

Plus d'info sur le webclient peut être trouvé à: http://msdn.microsoft.com/en-us/library/system.net.webclient.aspx

22
répondu Wolfwyrd 2008-09-18 13:48:11

Utilisez la classe webrequest

c'est pour obtenir une 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
5
répondu chrissie1 2008-09-18 13:32:26

la façon la plus facile est System.Net.WebClient.DownloadFile ou DownloadString.

2
répondu Oliver Mellet 2012-06-09 22:31:44

vous devriez essayer le HttpWebRequest classe.

1
répondu Dario Solera 2008-09-18 13:29:27

essaye ceci:

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
}

Désolé pour le C#, je sais que vous avez demandé pour VB, mais je n'ai pas eu le temps de convertir.

1
répondu Nick Berardi 2008-09-18 13:36:09
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
répondu sanket parikh 2017-05-11 09:24:08