当我输入用户可以在本URI调用REST方法在我运行的Web API的应用程序:
http://SHANNON2:21608/api/inventory/sendXML/duckbill/platypus/someFileName // using Hostname of local machine
--or这一个:
http://192.168.125.50:21608/api/inventory/sendXML/duckbill/platypus/someFileName // using IP Address of local machine
...在邮差(使用HttpPost,并附加一个XML文件),并运行它,在提琴手2研究它,我看到提琴手的Inspectors.WebView窗格此错误:
Bad Request - Invalid Hostname
--------------------------------------------------------------------------------
HTTP Error 400. The request hostname is invalid.
注:我得到即使我做打在服务器上相应的控制器REST方法断点的错误。
试图进一步审查到底发生了happending(正在发送的HTTP),我跑Wireshark的,看看这只是我的IP地址的目的:
...这与我的IP地址作为源:
为什么没有HTTP协议项? 该HTTP显然被发送,因为我打我的服务器控制方法的第一行设置断点:
[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? 难道视而不见到内部通信,如果是这样,我怎么能“释放它”给我看吗?
UPDATE
AHA /瞧! 邮差的组合,RawCap( http://www.netresec.com/?page=RawCap ),和Wireshark似乎工作。 我迅速地从与此冗词在命令提示符下运行的新发现RawCap:
RawCap.exe 192.168.125.50 captured.pcap
......然后叫邮差从REST的方法,以及打开的RawCap在Wireshark的创建(在我的情况captured.pcap)生成的文件,它显示了我一些HTTP流量:
有关HTTP调用一些更详细可以看这里:
我不知道是如何“关闭” RawCap优雅。
更新2
RawCap / Wireshark的告诉我,这是一个错误的请求(我已经知道是响应):
......但我什么也看不到给我, 为什么它被认为是一个坏的请求线索
更新3
当我尝试调用从小提琴手作曲家我的REST方法与所有的各种形式的“本地”的(主机名,IP地址,“locohost”),我永远无法到达服务器断点; 我得到犯错之前,该封邮件(404 locohost,400对于所有其他):