2010-12-13 9 views
1

私はこれについて他の投稿からの提案を使用しようとしましたが解決はまだありません。 POST要求を送信するとき、時々凍結してストールし始めるでしょう。私は以下のようにコードを設定し、基本的にはなぜ凍結しているのかわからない場合は、タイムアウトし、例外を処理し、関数を再起動する必要があります。httpwebresponse = request.getresponse freezes

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

これはコーディングエラーなのか他の人が知っていますか?

OK]をクリックしてそのぶら下げ...私は要求に書いている理由を考え出したと私はより多くを期待することは、私は、コンテンツの長さを設定していてもバイトのエラーがない近いストリーム

答えて

0

カントは情報から知ることができるので、取得します指定されたURLがこのコードが実行されている場所とは異なるドメインにある場合は、動作しません。

は、私がループでこれをやっていると、最初の240回の要求に対して正常に動作するようですMSDN - Do a find on cross-domain

+0

を参照してください。 – vbNewbie

+0

ループの途中で反復でフリーズするのですか?または、それが凍ったときに最初の反復で起こり、残りの部分を決して通過しませんか? –

+0

これは最初の繰り返しでフリーズし続けます...しかし、私が投稿したデータが異なっていたときには、問題なくすべて通過しました。宛先のサーバに私が投稿しているデータに問題があるかもしれません>私はデータをチェックしましたが、それに適合しています – vbNewbie

関連する問題