HTTP GET in VB.NET

Qual è il modo migliore per pubblicare un http in VB.net? Voglio ottenere il risultato di una richiesta come http://api.hostip.info/?ip=68.180.206.184

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

È ansible utilizzare la class HttpWebRequest per eseguire una richiesta e recuperare una risposta da un determinato URL. Lo userai come:

 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 è dettagliato su: http://msdn.microsoft.com/en-us/library/system.net.httpwebrequest.aspx

Una seconda opzione consiste nell’utilizzare la class WebClient, che fornisce un’interfaccia più facile da usare per scaricare risorse Web ma non è flessibile come 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 

Maggiori informazioni sul webclient sono disponibili all’indirizzo: http://msdn.microsoft.com/en-us/library/system.net.webclient.aspx

usa la class webrequest

questo è per ottenere un’immagine

  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 

Il modo più semplice è System.Net.WebClient.DownloadFile o DownloadString .

Dovresti provare la class HttpWebRequest .

Prova questo:

 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 } 

Mi dispiace per il C #, so che hai chiesto VB, ma non ho avuto il tempo di convertirmi.

 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