在VB.net中发布http get的最佳方法是什么?我想得到一个请求的结果,如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
第二个选项是使用WebClient类,这提供了一个更易于使用的界面来下载Web资源,但不像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
有关webclient的更多信息,请访问: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