java一些HTTP请求不会出现在Fiddler中
我正在将访问web商店API的示例代码从Java重写为经典ASP。Java代码可以工作,它发送请求并返回正确的结果。ASP代码的作用完全相同,但它只返回一个错误,即授权有问题。我已经检查了hmac签名字符串(sha256,base64),但这给出了与Java代码相同的结果
然后我决定检查HTTP请求的实际外观,并相互比较。Fiddler似乎是个不错的选择,但由于某些原因,两个HTTP请求都没有出现
关于这个问题已经写了很多文章,我尝试了几种方法,但到目前为止没有成功。它们都描述了通过Fiddler代理路由请求,即localhost:8888
我在ASP代码中使用此对象:
Set httpRequest = Server.CreateObject("MSXML2.ServerXMLHTTP.6.0")
对于IIS 7(在Windows 7上),可以在DOS中设置代理,如下所示:
netsh winhttp set proxy localhost:8888
在这样的代码中(这在除v6之外的其他版本的“MSXML2.ServerXMLHTTP”中可能不起作用):
httpRequest.setProxy 2, "http=localhost:8888", ""
Java代码使用ApacheHttpClient,根据manual可以如下设置代理:
DefaultHttpClient httpclient = new DefaultHttpClient();
HttpHost proxy = new HttpHost("localhost", 8888);
httpclient.getParams().setParameter(ConnRoutePNames.DEFAULT_PROXY, proxy);
我在main()方法的开头添加了这段代码。代码在Eclipse(Juno)中运行
我还打开了代理地址(http://localhost:8888/)在浏览器中,它会显示“Fiddler Echo服务”页面。Fiddler设置为显示“所有进程”
不过,两个HTTP请求都没有出现。唯一显示的是我运行的ASP页面(http://localhost:8082/test.asp)这就是HTTP请求。当我使用浏览器时,Fiddler上会显示其他东西,所以我知道它正在工作
有人有什么想法吗
# 1 楼答案
我最初认为,因为这两个程序在Fiddler上都没有显示,所以Fiddler出了问题
但这两个项目都有问题。对于ASP代码,setProxy的调用方式如下:
所以“:/”而不是“=”
让Java代码中的Apache HttpClient请求显示在Fiddler中非常复杂,因为请求是使用https协议发送的。虽然我尝试了几种提议的解决方案,但都没能成功
最后我发现
作为虚拟机的一个参数,它向我展示了我所需要的,正在发送的头文件