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
En 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");
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étaillé à l’adresse: http://msdn.Microsoft.com/en-us/library/system.net.httpwebrequest.aspx
Une deuxième option consiste à utiliser la classe WebClient. Cette interface offre une interface plus facile à utiliser pour le téléchargement de ressources Web, mais elle 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'informations sur le client Web sont disponibles à l'adresse suivante: http://msdn.Microsoft.com/en-us/library/system.net.webclient.aspx
Utilisez le WebRequest class
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
Le moyen le plus simple est System.Net.WebClient.DownloadFile
ou DownloadString
.
Vous devriez essayer le HttpWebRequest class.
Essaye ça:
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 me 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