在VB.NET中的HTTP GET

什么是在VB.net中发出http获取的最佳方式? 我想要得到http://api.hostip.info/?ip=68.180.206.184的请求的结果

在VB.NET中:

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

在C#中:

 System.Net.WebClient webClient = new System.Net.WebClient(); string result = webClient.DownloadString("http://api.hostip.info/?ip=68.180.206.184"); 

您可以使用HttpWebRequest类执行请求并从给定的URL检索响应。 你会像这样使用它:

 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详细在: http : //msdn.microsoft.com/en-us/library/system.net.httpwebrequest.aspx

第二个select是使用WebClient类,这提供了一个更容易使用的界面来下载networking资源,但不像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 

有关Web客户端的更多信息,请访问: http : //msdn.microsoft.com/en-us/library/system.net.webclient.aspx

使用webrequest类

这是得到一个图像

  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 

最简单的方法是System.Net.WebClient.DownloadFileDownloadString

你应该尝试HttpWebRequest类。

尝试这个:

 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 } 

对不起,关于C#,我知道你问VB,但我没有时间转换。

 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