VB.NET中的HTTP GET

时间:2020-03-06 14:21:16  来源:igfitidea点击:

在VB.net中发布http get的最佳方法是什么?我想获取类似http://api.hostip.info/?ip=68.180.206.184的请求的结果

解决方案

我们应该尝试HttpWebRequest类。

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

使用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"。

试试这个:

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,但是我没有时间转换。

我们可以使用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/zh-cn/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

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