如何用Java(Apache HTTP客户端)模拟浏览器HTTPS POST请求?
有一个带有AJAX API的网站。我已经打开Firebug来查看登录HTTPS POST请求的详细信息 然后,我尝试使用ApacheHTTP客户端从Java程序执行相同的POST请求。但不知何故,服务器将我的请求标识为非浏览器请求。它发送一条安全异常消息,告诉我如何用Java(Apache HTTP客户端)模拟浏览器HTTPS POST请求?,java,http,https,web-crawler,Java,Http,Https,Web Crawler,有一个带有AJAX API的网站。我已经打开Firebug来查看登录HTTPS POST请求的详细信息 然后,我尝试使用ApacheHTTP客户端从Java程序执行相同的POST请求。但不知何故,服务器将我的请求标识为非浏览器请求。它发送一条安全异常消息,告诉我 当所有请求头都相同时,还有什么可以将我的客户端标识为非浏览器?用户代理头 查看完整的连线记录,并将请求与firebug的请求进行比较。不知道POST请求,但对于多部分请求有此功能 MultipartEntity=新的MultipartE
当所有请求头都相同时,还有什么可以将我的客户端标识为非浏览器?
用户代理
头
查看完整的连线记录,并将请求与firebug的请求进行比较。不知道POST请求,但对于多部分请求有此功能 MultipartEntity=新的MultipartEntity(HttpMultipartMode.BROWSER_兼容) 看看有没有什么帮助 编辑:多部分请求的代码示例 字符串createOrderUrl=Constants.CREATE\u ORDER\u URL
我猜这是一个cookie问题(例如浏览器存储的JSESSIONID)。在帖子中包含会话信息。请查看此站点的cookies。请尝试禁用此站点的Cookie。请再次查看请求。谢谢您的提示。但是,如何用我的键值对填充多属性呢?
HttpClient httpClient = new DefaultHttpClient();
HttpPost httpPost = new HttpPost(createOrderUrl);
MultipartEntity entity = new MultipartEntity(HttpMultipartMode.BROWSER_COMPATIBLE);
// add the information to the multipart request
entity.addPart("msisdn", new StringBody("something"));
entity.addPart("recipientname", new StringBody("something"));
entity.addPart("recipientnumber", new StringBody("something"));
entity.addPart("recipientaddress", new StringBody("something"));
// add the images
for (String imagePath : selectedImages)
{
FileBody bin = new FileBody(new File(imagePath));
entity.addPart("image", bin);
}
httpPost.setEntity(entity);
return httpClient.execute(httpPost);