2010-12-13 16 views
1

Ich habe versucht, Vorschläge von anderen Posts für diese und immer noch keine Lösung. Wenn eine POST-Anfrage gesendet wird, fängt es manchmal an zu frieren und zu blockieren. Ich richte meinen Code wie folgt ein und jetzt, wenn ich nicht herausfinden kann, warum er erstarrt, muss er eine Zeitüberschreitung haben, die Ausnahme behandeln und die Funktion neu starten.httpwebresponse = request.stresponse friert ein

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 
     .... 

Weiß jemand, ob das ein Codierungsfehler oder etwas anderes ist?

Ok herausgefunden, warum seine hängenden ... ich auf die Anfrage schreibe und ich bekomme die Fehler nicht in der Nähe Stream kann, weil seine mehr erwarten Bytes obwohl ich die Länge des Inhalts

Antwort

0

Cant von der Informations sagen gesetzt Hier angegeben, aber wenn die angegebene URL in einer anderen Domäne als dem Ort liegt, an dem dieser Code ausgeführt wird, funktioniert es nicht.

Siehe MSDN - Do a find on cross-domain

+0

ich dies in einer Schleife tue, und es scheint für die ersten 240 Anfragen zu funktionieren. – vbNewbie

+0

Friert es bei einer Iteration in der Mitte der Schleife? Oder wenn es erstarrt, passiert es bei der ersten Iteration und schafft es nie durch den Rest? –

+0

Es friert bei der ersten Iteration ein und fährt nicht fort ... aber vorher, als die Daten, die ich gepostet habe, anders waren, ging alles ohne Probleme durch ... könnte es sein, dass der Zielserver ein Problem mit den von mir geposteten Daten hat Ich überprüfte die Daten aber und es entspricht – vbNewbie