不使用Fiddler,在调用GetResponse之前将HttpWebRequest作为字符串查看

6
在调用GetResponse方法之前,我该如何将HttpWebRequest对象以字符串形式查看? 我想要查看请求的原始格式,就像在Fiddler中一样:
Content-Type: multipart/form-data; boundary=---------------------------2600251021003 
Content-Length: 338 
-----------------------------2600251021003 Content-Disposition: form-data; name="UPLOAD_FILEName"; filename="Searchlight062210 w price.csv" Content-Type: application/vnd.ms-excel 
,,,,, 
-----------------------------2600251021003 
Content-Disposition: form-data; name="submit" 
submit 
-----------------------------2600251021003-- 

我尝试了以下代码,但是无法工作,因为流不可读。
 string GetRequestString(HttpWebRequest req)
        {
            Stream stream2 = req.GetRequestStream(); 
            StreamReader reader2 = new StreamReader(stream2);
            return reader2.ReadToEnd();  

        }
1个回答

6
如果是为了记录目的,您可以通过在应用程序/ web.config 中添加以下内容来激活跟踪:

如果是为了日志目的,您可以通过在应用程序/ web.config 中添加以下内容来激活跟踪:

  <system.diagnostics>
    <sources>
      <source name="System.Net.Sockets" tracemode="protocolonly">
        <listeners>
          <add name="System.Net.Sockets" type="System.Diagnostics.TextWriterTraceListener" initializeData="network.log" />
        </listeners>
      </source>
    </sources>

    <switches>
      <add name="System.Net.Sockets" value="Verbose"/>
    </switches>

    <trace autoflush="true" />
  </system.diagnostics>

运行你的代码并查看生成的日志文件。

1
app.config中的tracemode="protocolonly"无法识别。 - Brij
@brz点网,不要相信Visual Studio。只需运行您的代码,它就会正常工作。绝对存在这样的元素。甚至在MSDN上都有说明:http://msdn.microsoft.com/en-us/library/ty48b824.aspx - Darin Dimitrov
我可以为特定的请求指定跟踪吗? - Brij

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接