13

このトピックについてはたくさんの質問がありますが、彼らは私に答えを与えませんでした。

アドバイスからのように-設定するものがありServicePointManager.Expect100Continue = falseます。しかし、これはモジュールであり、他の数十と同期して動作するため、受け入れられません。したがって、許容できる解決策は、接続ごとのプロパティです。これを設定する方法についてのアドバイスがありますが、機能していないようです。

コードは次のとおりです。

var conuri = new Uri(connectionString);
var sp = ServicePointManager.FindServicePoint(conuri);
sp.Expect100Continue = false;

_request = (HttpWebRequest)WebRequest.Create(conuri);
_request.ContentType = "text/xml";
_request.Method = "POST";

_request.ContentLength = dataToSend.Length;
requestStream = _request.GetRequestStream();
requestStream.Write(dataToSend, 0, dataToSend.Length);

問題は、「requestStream.Write」の時点でヘッダーExpect: 100-continueがまだ追加されていることですが、ここで読んだアドバイスに従ってはいけません:C#Expect100Continueヘッダーリクエスト

4

2 に答える 2

32

あなたはこのようにそれを行うことができます:

_request.ServicePoint.Expect100Continue = false;

Expect: 100-continueこれにより、特定のHttpWebRequestインスタンスのが無効になります。

于 2013-03-11T14:41:19.510 に答える
0

このプロパティがtrueに設定されている場合、POSTメソッドを使用するクライアント要求は、サーバーから100-Continue応答を受信して​​、クライアントが投稿するデータを送信する必要があることを示すことを期待します。このメカニズムにより、サーバーが要求ヘッダーに基づいて要求を拒否しようとするときに、クライアントがネットワークを介して大量のデータを送信することを回避できます。

ServicePointManager.Expect100Continue = true;

于 2021-03-18T07:55:03.903 に答える