在登录失败时发送Java HTTP请求结果,但在使用webbrowser时成功

时间:2015-05-29 10:16:21

标签: java http

我想控制一个设备,其功能只能通过Web界面访问。所以我想为设备的功能构建一种包装器。

Web界面要求您先登录,然后在界面中有一些按钮。

所以我尝试使用登录参数向服务器发送(使用Java)HTTP POST请求。网络服务器 返回200 OK,但问题是,返回的HTML文档声明它“登录失败”。

奇怪的是,当我使用我的webbrowser并尝试使用web界面的登录表单登录时,登录成功。

我使用了Live HTTP Headers Firefox插件,以及我的浏览器发送的一些标题,我复制了一个应用在我的Java代码片段中。至少AcceptContent-LengthContent-Type标题以及类似的内容。

我正在使用以下代码:

String query = "somekey=somevalue&anotherkey=anothervalue";

URL url = new URL("http://" + this.address + "/somesubdir");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setDoOutput(true);
conn.setRequestMethod("POST");
conn.addRequestProperty("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8");
conn.addRequestProperty("Connection", "keep-alive");
conn.addRequestProperty("Content-Type", "application/x-www-form-urlencoded");
conn.addRequestProperty("Content-Length", "" + query.length());
conn.getOutputStream().write(query.getBytes("UTF-8"));

问题的原因是什么?它与会话有什么关系吗?

0 个答案:

没有答案