HTTP GET в VB.NET

Как лучше всего создать http get в VB.net? Я хочу получить результат запроса типа http://api.hostip.info/?ip=68.180.206.184

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
43
0
184 819
7
Перейти к ответу Данный вопрос помечен как решенный

Ответы 7

Вам следует попробовать класс 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");

Dim webClient As System.Net.WebClient = New System.Net.WebClient() можно сократить до Dim webClient As New System.Net.WebClient, не так ли?

Matt Lyons 30.11.2011 02:36

@MattLyons Да, может. Можно также опустить As String из Dim result As String = ..., но я пока оставлю это здесь.

hangy 23.03.2012 20:07

Что, если для веб-страницы требуется имя пользователя и пароль?

Matt 09.01.2013 22:26

@Matt Используйте HttpWebRequest и установите свойство Credentials на новый экземпляр NetworkCredential.

hangy 09.01.2013 23:00

Используйте класс 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/en-us/library/system.net.httpwebrequest.aspx

Второй вариант - использовать класс WebClient, это обеспечивает более простой в использовании интерфейс для загрузки веб-ресурсов, но не такой гибкий, как 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

Более подробную информацию о веб-клиенте можно найти по адресу: http://msdn.microsoft.com/en-us/library/system.net.webclient.aspx

Удалите точку с запятой из string.Close (); в первом примере все хорошо.

Corgalore 31.10.2011 23:42

WebClient - быстрое решение, но HttpWebRequest более мощный. В проекте мне нужно было получать метаданные изображений с удаленных ресурсов: я избегал загрузки изображений в файловую систему и использовал встроенный ResponseStream.

Alberto De Caro 06.06.2012 17:51

Response.Write(str.ReadToEnd()) предполагает, что она использует asp.net.

Max Hodges 27.01.2014 17:10

@Wolfwyrd будет ли это работать с https или нужно будет использовать дополнительный api.

marshal craft 28.01.2017 18:14

@marshalcraft - должно работать нормально для https, см. stackoverflow.com/questions/560804/… для указателей, если это не работает для вас

Wolfwyrd 31.01.2017 18:10

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

я просто создаю функцию и называю ее

sanket parikh 11.05.2017 12:24

Другие вопросы по теме