gpt4 book ai didi

http - 如何让 Wireshark 显示我的本地 HTTP 流量?

转载 作者:可可西里 更新时间:2023-11-01 17:09:22 26 4
gpt4 key购买 nike

当我输入此 URI 以在我正在运行的 Web API 应用程序上调用 REST 方法时:

http://SHANNON2:21608/api/inventory/sendXML/duckbill/platypus/someFileName // using Hostname of local machine

——或者这个:

http://192.168.125.50:21608/api/inventory/sendXML/duckbill/platypus/someFileName // using IP Address of local machine

...在 Postman 中(使用 HttpPost,并附加一个 xml 文件)并运行它,在 Fiddler 2 中检查它时,我在 Fiddler 的 Inspectors.WebView Pane 中看到这个错误:

Bad Request - Invalid Hostname

--------------------------------------------------------------------------------

HTTP Error 400. The request hostname is invalid.

注意:即使我确实在服务器上相应的 Controller REST 方法中设置了断点,我仍然收到该错误。

为了进一步检查到底发生了什么(正在发送什么 HTTP),我运行 Wireshark 并只看到我的 IP 地址的目的地:

enter image description here

...以我的 IP 地址为来源:

enter image description here

为什么没有 HTTP 协议(protocol)条目?显然正在发送 HTTP,因为我遇到了我在服务器 Controller 方法的第一行设置的断点:

[HttpPost]
[Route("api/inventory/sendXML/{userId}/{pwd}/{filename}")]
public async Task SendInventoryXML(String userId, String pwd, String fileName)
{
Task task = Request.Content.ReadAsStreamAsync().ContinueWith(t =>
{
var stream = t.Result;
using (FileStream fileStream = File.Create(String.Format(@"C:\HDP\{0}.xml", fileName), (int)stream.Length))
{
byte[] bytesInStream = new byte[stream.Length];
stream.Read(bytesInStream, 0, (int)bytesInStream.Length);
fileStream.Write(bytesInStream, 0, bytesInStream.Length);
}
});
}

那么为什么 Wireshark 在向我显示发送的 HTTP 时如此神秘?它是否对这种内部交流视而不见,如果是这样,我如何“释放它”来向我展示这一点?

更新

啊哈/瞧! Postman、RawCap ( http://www.netresec.com/?page=RawCap ) 和 Wireshark 的组合似乎有效。我立即从命令提示符运行了新发现的 RawCap,并使用了以下措辞:

RawCap.exe 192.168.125.50 captured.pcap

...然后从 Postman 调用 REST 方法,并在 Wireshark 中打开 RawCap 创建的结果文件(在我的例子中是 captured.pcap),它显示了一些 HTTP 流量:

enter image description here

可以在此处查看有关 HTTP 调用的更多详细信息:

enter image description here

我不知道如何优雅地“关闭”RawCap。

更新 2

RawCap/Wireshark 告诉我这是一个错误的请求(我已经知道这是响应):

enter image description here

...但我看不出有任何线索可以告诉我为什么它被认为是一个错误的请求

更新 3

当我尝试使用各种形式的“本地”(主机名、IP 地址、“locohost”)从 Fiddler Composer 调用我的 REST 方法时,我从未到达服务器中的断点;在此之前我收到错误消息(locohost 为 404,所有其他为 400):

enter image description here

最佳答案

通常,Invalid Hostname 表示 HTTP 请求的 Host header 包含未绑定(bind)到 Web 服务器上任何站点的值。例如,您使用 IP 地址作为主机,但如果您的服务器仅配置为接受机器名称(例如 mybox),那么您将看到来自服务器的 HTTP/400 要求您提供了正确的主机名。

关于http - 如何让 Wireshark 显示我的本地 HTTP 流量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25751970/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com