在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.DownloadFile
或DownloadString
。
你应该尝试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