#.net #vb.net #httpwebrequest
#.net #vb.net #httpwebrequest
Вопрос:
Dim s As HttpWebRequest
Dim username= "username=" HttpUtility.UrlEncode("username")
Dim message = "message=" HttpUtility.UrlEncode("message")
Dim sep = "amp;"
Dim sb As New StringBuilder()
sb.Append(username).Append(sep).Append(message)
s = HttpWebRequest.Create("http://www.website.com/?" sb.ToString())
s.Method = "GET"
Dim result = s.GetResponse()
Как мне ответить.записать результат на экран?
Я получаю ошибки типа .. Значение типа ‘System.Net.WebResponse’ не может быть преобразовано в ‘String’.
Ответ №1:
s.GetResponse() возвращает WebResponse, который нельзя просто распечатать. Фактические данные ответа находятся в результате.Заголовки и результат.GetResponseStream(). Вам нужно будет прочитать данные из этого (как вы бы прочитали любой поток) в строку, которую вы можете вывести на экран.
Ответ №2:
Похоже, вы создаете базовый прокси. Что вам нужно сделать, как сказал Tridus, так это получить поток ответов, а затем записать содержимое из одного в другой. Я делал это раньше в проекте с открытым исходным кодом, который может вам помочь.
Управляемый прокси-класс Fusion Rewriter
Я знаю, что это C #, но процесс все тот же в VB. И должен выглядеть примерно так:
Using responseStream = response.GetResponseStream()
Using bufferStream = New BufferedStream(responseStream, Manager.Configuration.Rewriter.Proxy.BufferSize)
Dim buffer As Byte() = New Byte(bufferSize - 1) {}
Try
While True
' make sure that the stream can be read from
If Not bufferStream.CanRead Then
Exit While
End If
Dim bytesReturned As Integer = bufferStream.Read(buffer, 0, bufferSize)
' if not bytes were returned the end of the stream has been reached
' and the loop should exit
If bytesReturned = 0 Then
Exit While
End If
' write bytes to the response
context.Response.OutputStream.Write(buffer, 0, bytesReturned)
End While
Catch exc As Exception
Manager.Log("Error on response: " exc.Message, "Proxy")
End Try
End Using
End Using
Пожалуйста, обратите внимание, что это прямой перевод с моего исходного кода, поэтому вам придется вносить изменения для вашей собственной программы.