Как просмотреть ответ HTTPWebRequest? - PullRequest
0 голосов
/ 24 мая 2011
Dim s As HttpWebRequest
Dim username= "username=" + HttpUtility.UrlEncode("username")
Dim message = "message=" + HttpUtility.UrlEncode("message")
Dim sep = "&"
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'.

Ответы [ 2 ]

0 голосов
/ 24 мая 2011

Похоже, вы создаете базовый прокси.То, что вам нужно сделать, как сказал Тридус, - это получить поток ответов и затем записать содержимое из одного в другое.Я делал это раньше в проекте с открытым исходным кодом, который может вам помочь.

Управляемый прокси-класс 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

Обратите внимание, что это прямой перевод из моего источника, поэтому вам нужно будет выполнить настройки для вашей собственной программы.

0 голосов
/ 24 мая 2011

s.GetResponse () возвращает WebResponse , который вы не можете просто напечатать.Фактические данные ответа находятся в result.Headers и result.GetResponseStream ().Вам нужно будет прочитать данные из этого (так же, как вы прочитали бы любой поток) в строку, и это вы можете вывести на экран.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...