在发送之前读取HttpWebRequest流

时间:2014-05-21 11:40:04

标签: c# .net httpwebrequest

我正在使用System.Net.HttpWebRequest类发出POST请求,并希望确保请求在发送之前格式正确。

所以,我想在它出去之前打印出整个请求流。

我正在寻找Fiddler中的内容,但我仍然有兴趣知道是否有一种方法可以在发送之前以编程方式读取请求流。

问题是请求流不可搜索,也不可读。我该如何阅读?

所以,这件事不起作用:

...
accessTokenRequest.Method = "POST";
var accessTokenRequestStream = accessTokenRequest.GetRequestStream();
accessTokenRequestStream.Write(buffer, 0, buffer.Length);

accessTokenRequestStream.Seek(0, SeekOrigin.Begin);
using (var reader = new StreamReader(accessTokenRequestStream))
{
  var requestText = reader.ReadToEnd();

  Debugger.Break();

  Debug.Print(requestText);
}

accessTokenRequestStream.Close();

1 个答案:

答案 0 :(得分:1)

请求流是只写的,没有办法读取它。

但是,您可以做的是在MemoryStream中准备请求正文,然后回滚MemoryStream并将其复制到请求流。