2012-12-28 8 views
36

HttpWebRequestは、POSTリクエストにExpect: 100-continueヘッダーを自動的に付加します。インターネットのまわりのさまざまなソースは、次のようにこれを無効にすることができることを示唆している:HttpWebRequestの "Expect:100 continue"ヘッダーを1回のリクエストで無効にするにはどうすればよいですか?

しかし、私は、ライブラリを書いていると、アプリケーションはこの動作に依存している場合には、私は、全体のAppDomainのためにこれを無効にすることはできません。それがこの値に設定されたままであるとは想定していません。特定のリクエストに対してどのように無効にすることができますか?

+0

これは私のために最後に働いた。 –

答えて

61

HttpWebRequestクラスには、ServicePointというプロパティがあり、特定の要求に対してこの設定を変更することができます。たとえば:あなたはまた、プロキシを設定する必要がある場合

var req = (HttpWebRequest) WebRequest.Create(...); 
req.ServicePoint.Expect100Continue = false; 
+0

素晴らしい答え。これにより、HttpWebRequest.ContinueTimeoutプロパティを設定するためにクライアントを.NET 4.5にアップグレードする必要がなくなりました。実行時に – itsben

+0

が自動的に再び追加されます –

15

は、最初にそれを行うようにしてください。それ以外の場合はExpect100Continueはに戻ります。だから:

HttpWebRequest webRequest = WebRequest.CreateHttp(_url); 
webRequest.Proxy = new WebProxy(_proxyHost, _proxyPort); 
webRequest.ServicePoint.Expect100Continue = false; 
関連する問題