Question

Quel est le meilleur moyen d’émettre un http get en VB.net? Je souhaite obtenir le résultat d'une requête du type http://api.hostip.info/?ip = 68.180.206.184

Était-ce utile?

La solution

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");

Autres conseils

Vous pouvez utiliser la classe HttpWebRequest pour effectuer une demande et récupérer une réponse à partir d'une URL donnée. Vous allez l'utiliser comme:

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écrit à l'adresse suivante: http://msdn.microsoft. .com / fr-us / library / system.net.httpwebrequest.aspx

Une deuxième option consiste à utiliser la classe WebClient. Elle fournit une interface plus facile à utiliser pour le téléchargement de ressources Web, mais n’est pas aussi souple 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

Vous trouverez plus d'informations sur le client Web à l'adresse suivante: http: //msdn.microsoft.com/en-us/library/system.net.webclient.aspx

Utilisez la classe WebRequest

Ceci 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

La méthode la plus simple est System.Net.WebClient.DownloadFile ou DownloadString .

Vous devriez essayer la classe HttpWebRequest .

Essayez 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é VB, mais je n’ai pas eu le temps de convertir.

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
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top