2017-04-12 8 views
3

を取得し、私は(あなたがhttp://web-sniffer.net/上で見ることができるもののような)クライアントから送信されたオリジナルの生のHTTPリクエストを見てみたいと思います:C#WebAPIの - 私のWebAPIのコントローラの一つでは完全なHTTPリクエスト

POST/HTTP/1.1 
Host: www.some.host.tld 
Connection: keep-alive 
Accept-Encoding: gzip[CRLF] 
Accept-Charset: ISO-8859-1,UTF-8;q=0.7,*;q=0.7 
field1=FIELD1&field2=FIELD2 
Content-type: application/x-www-form-urlencoded 
[...] 

どうすればいいですか? RequestRequestContextにはこのデータが含まれていないため、このコンテンツを照会するためのその他のリソースは見つかりませんでした。

私はSOについて同様の質問を探してみましたが、生の内容や(完全なHTMLの場合)Javaの質問のみが見つかりました。

私の心の後ろには、これに関してはFilterConfig.csとの組み合わせで小さな記憶がありますが、悲しいことにはそれほど具体的ではありません。そして運があれば、私よりも知識が豊かな人は、この情報を直接入手する方法さえ知っています。

編集:

直接、生のHTTPリクエストをキャプチャすることは不可能であること、らしいです。リンクされた答えを読んだ後、私はいくつかのフィールドからリクエストを再構築する必要があるようです。スタートラインについて

  • HttpContext.Current.Request.HttpMethod + .Url + .ServerVariables["SERVER_PROTOCOL"]

    は彼の答えでジェフのコメントからのリンクによると、私が解析されたフィールドの束から、元の要求を再構築する必要があります。コンテンツ

+0

この1行で問題を解決できます。var data = Request.Headers; –

+0

@DanEsparzaリンクした回答(14967457)は役に立ちません。彼の答え(1038466)への彼のコメントでJeff Daviesによってリンクされた答えは正しい軌道に乗った。重複したマーカーを削除または編集して、これを読んだときに他の人が間違った答え(私の質問に)を迷わせないようにしてください。 – MilConDoin

答えて

0

のヘッダー

  • Request.Content.ReadAsStreamAsync().Resultため
  • HttpContext.Current.Request.ServerVariables["ALL_RAW"]は(読み取り前の位置0に求めることを忘れないでください)Telerikフィドラーをインストールして実行します。これは、トラフィックをキャプチャし、HTTPSトラフィックをデコードします。それは私がこの目的のためにいつも使っているものです。

  • +3

    私はOPがコードソリューションを望んでいると思います。その場合は – Luke

    +1

    、この質問はこれと重複していると思います。http://stackoverflow.com/questions/1038466/logging-raw-http-request-response-in-asp-net-mvc-iis7 –

    関連する問題