【问题标题】:HTTP Request Extended InfoHTTP 请求扩展信息
【发布时间】:2015-03-02 12:08:00
【问题描述】:

我遇到了一个成功发送请求的烦人场景(我从目的地获得了 200,这是一个“黑盒”目的地)。

另一方面,我有一个场景,请求没有从目的地成功发送到相同的目的地(我得到 500)。

显然请求不同,我想比较一下。

所以,

我已经打印了标题:

Dim headers As String = String.Empty
Dim keys As String() = httpRequest.Headers.AllKeys

For i As Integer = 0 To keys.Length
    ' Exit condition if the value is three.
    Dim headerKey = keys(0)
    headers &= headerKey & "=" & httpRequest.Headers(headerKey) & Environment.NewLine
    i += 1
Next

我还打印了其他东西(地址、客户证书等)

但是,如果任何人(已经解决过这种情况或刚刚遇到这种情况)可以提供一些 vb.net 方法来打印请求包含的所有内容,从标头到正文,将不胜感激。

尝试用谷歌搜索这种方法,但没有找到, c# sample 也可以。

【问题讨论】:

  • 您可以使用像 Charles 这样的本地代理来查看输出和输入的内容。

标签: c# asp.net .net vb.net httprequest


【解决方案1】:

您可以通过将以下部分添加到您的App.config/Web.configenable tracing

<system.diagnostics>
    <sources>
        <source name="System.Net" tracemode="protocolonly" maxdatasize="1024">
            <listeners>
                <add name="System.Net" />
            </listeners>
        </source>
    </sources>
    <switches>
        <add name="System.Net" value="Verbose"/>
    </switches>
    <sharedListeners>
        <add name="System.Net"
             type="System.Diagnostics.TextWriterTraceListener"
             initializeData="network.log" />
    </sharedListeners>
    <trace autoflush="true"/>
</system.diagnostics>

现在运行您的程序并检查将在与您的可执行文件相同的目录中生成的network.log 文件的内容。它将包含有关 HTTP 请求的详细信息。

或者,我可能会建议您使用Fiddler,它是检查来自本地计算机的 HTTP 流量的好工具。

【讨论】:

  • Fiddler 不是只用于浏览器吗?我过去曾在此类场景中使用过Microsoft Network MonitorWireSharkCharles
  • 不,绝对不是,Fiddler 与浏览器无关。只需安装它,即可享受从您的机器发出的完整 HTTP 流量。
  • 我试过了,但我没有得到日志文件。检查了项目的每个文件夹,有什么想法吗?
猜你喜欢
  • 2012-03-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-15
  • 1970-01-01
  • 1970-01-01
  • 2016-01-28
相关资源
最近更新 更多