Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何用Java(Apache HTTP客户端)模拟浏览器HTTPS POST请求?_Java_Http_Https_Web Crawler - Fatal编程技术网

如何用Java(Apache HTTP客户端)模拟浏览器HTTPS 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

有一个带有AJAX API的网站。我已经打开Firebug来查看登录HTTPS POST请求的详细信息

然后,我尝试使用ApacheHTTP客户端从Java程序执行相同的POST请求。但不知何故,服务器将我的请求标识为非浏览器请求。它发送一条安全异常消息,告诉我


当所有请求头都相同时,还有什么可以将我的客户端标识为非浏览器?

用户代理


查看完整的连线记录,并将请求与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);