2

デフォルトでHttpWebRequestAllowWriteStreamBufferingtrue に設定されています。これは、リクエスト ストリームに書き込まれたすべてのデータがオブジェクト内にバッファリングされることを意味します。

書き込まれた後にこのデータのバッファにアクセスしたいのですが、そうする方法が見つからないようです。AllowWriteStreamBufferingが false の場合は失敗します。

これを行う方法はありますか、それともどこにも公開されていませんか?


これを行う理由について: OAuth 要求署名クラスを作成していますが、残念ながら、プロトコルでは、フォームでエンコードされた本文を署名の一部と見なす必要があります。したがって、フォームがエンコードされている場合は、本文にアクセスできる必要があります。

4

1 に答える 1

0

AllowWriteStreamBuffering は内部メカニズムを使用します。バッファーは呼び出し元に公開されません。これにより、最初のリクエストがリダイレクトされるか、認証のために拒否されるシナリオが可能になります。この場合、WebRequest は、リクエストを失敗させたり、呼び出し元に再送信を求めることなく、新しいエンドポイントにデータを自動送信できます。

ストリームを取得する別の方法を見つける必要があります。おそらく、最初にそれを独自のバッファー (つまり、MemoryStream) にバッファーすることができます。必要な操作を行ってから、そのストリームを WebRequest の requestStream にフラッシュします。

于 2010-04-09T20:47:09.520 に答える