2013-01-30 38 views
28

レガシーコードの理由から新しいHttpClientをアップグレードできないので、私はHttpWebRequestsを使用しています。WinRTのHttpWebRequestの "Expect:100 continue"ヘッダーを無効にする方法

.NET 4では、ServicePoint.Expect100Continueプロパティを使用してExpectヘッダー(投稿要求時)を無効にできますが、WinRTでは利用できません。

これはどのようにWinRTで達成できますか?

編集:System.Net.ServicePointManager.Expect100Continueも利用できません。

+0

リクエストヘッダコレクションからExpectを削除することはできません。 – Ben

+0

それがないので、レスポンスの待機を開始すると自動的にヘッダーが追加されます。 – DVD

+0

ContinueTimeout(http://msdn.microsoft.com/en-us/library/system.net.httpwebrequest.continuetimeout.aspx)プロパティ、lke -1または0またはMaxValueで再生しようとしましたか。これは、WinRTバージョンでサポートされている唯一の関連プロパティのようです...(ContinueDelegate、No Expect、SendChunked、ServicePointなし) –

答えて

1

BeginGetRequestStreamをオーバーライドするオプションがあるようです。 HttpWebRequestにはプライベートメソッドMakeRequestがあり、その中にExpect100Continueヘッダーが要求ヘッダーコレクションに追加されます。

+0

どうすれば実現できますか? HttpWebRequestクラスは内部コンストラクタを持っています... – DVD

+1

私はより良い解決策を見つけました。これを試しましたか? HttpWebRequest webRequest =(HttpWebRequest)WebRequest.Create( "http:// something"); webRequest.Method = "POST"; webRequest.ServicePoint.Expect100Continue = false; –

+0

そのオプションはwinrt XDで利用できませんXD – DVD

38
 var c = new HttpClient(); 
     c.DefaultRequestHeaders.ExpectContinue = false; 
+0

私が言ったように、httpclientを使用することはできません – DVD

+0

申し訳ありませんが投稿した後にそれを見ました。残念ながら、HttpWebRequestのExpectContinueプロパティを変更するコードは明示的にブロックされています。これを取り除く唯一の方法です。 –

+0

プロパティExpectContinueを見つけることができません:https://msdn.microsoft.com/en-us/library/windows/apps/windows.web.http.headers.httprequestheadercollection.aspx間違った文書を読んでいますか? – Hong

10

これはあなたのwebconfigです。

<system.net> 
<settings>  
<servicePointManager expect100Continue="false"/>   
</settings>  
</system.net> 

も機能します。 私はこれを私のWebアプリケーションで使っています。しかし、上記の答えは同様に良いです!

+0

質問は特にWinRTについてですが、それはあまりにもうまくいくのでしょうか? – svick

+0

おっと私の悪い...私は試してみません – 8bitcat

+0

ServicePointerManagerはXDが存在しないので、Winrtのオプションではないと思います。 – DVD

関連する問題