httpwebresponse = request.getresponse зависает - PullRequest
1 голос
/ 13 декабря 2010

Я пытался использовать предложения из других сообщений для этого и до сих пор без разрешения.При отправке запроса POST иногда он просто начинает зависать и останавливаться.Я настроил свой код следующим образом, и теперь, в принципе, если я не могу понять, почему он зависает, то ему нужно время ожидания, обработать исключение и перезапустить функцию.

For i As Integer = 0 To searchItems.Count - 1
If uri.Scheme = uri.UriSchemeHttps Then
                        Dim request As HttpWebRequest = HttpWebRequest.Create(url)
                        request.Method = "POST"
                        request.ContentLength = data.Length
                        request.ContentType = "application/xml; charset=utf-8"
                        request.Timeout = 20000
                        Dim writer As New StreamWriter(request.GetRequestStream)

                        Dim postBytes As Byte() = System.Text.Encoding.UTF8.GetBytes(data)
                        writer.Write(postBytes)
                        ***Using oResponse As HttpWebResponse = request.GetResponse()*** ' this is where it freezes
                            Dim reader As New StreamReader(oResponse.GetResponseStream())
                            responseData = reader.ReadToEnd()
                            reader.Dispose()
                            oResponse.Close()
                        End Using
                        request.Abort()

                        writer.Close()
                    End If

                End If
            Next

    Catch e As WebException
        If e.Status = WebExceptionStatus.ProtocolError Then
         ....

Кто-нибудь знает, если этоошибка кодирования или что-то еще?

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

1 Ответ

0 голосов
/ 13 декабря 2010

Не могу сказать по информации, приведенной здесь, но если указанный URL-адрес находится в другом домене, чем местоположение, где выполняется этот код, то он не будет работать.на междоменном

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