我试图通过httpurlconnection连接到一个网页,但它的响应与普通浏览器(firefox、chrome)不同。我得到一个错误500。
用同样的代码我可以得到“任何其他”页面(例如谷歌)。我的代码发布在下面,但我很确定它是好的。
使用“live http headers”firefox插件,我发送了相同的请求并收到了有效的响应。
//...
String urlConsulta = "myURL";
URL url = new URL(urlConsulta);
HttpURLConnection uConsulta = (HttpURLConnection)consulta.openConnection();
uConsulta.setDoOutput(true);
uConsulta.setRequestMethod("POST");
uConsulta.addRequestProperty("Content-Type", "application/x-www-form-urlencoded");
uConsulta.addRequestProperty("Host", "host");
//...
最佳答案
这一切都有可能造成。服务器可能依赖于某些请求参数的存在。服务器可能依赖于有效会话。服务器可能会嗅探用户代理。等等……等等。请阅读服务器日志以了解错误原因。或者如果您没有访问服务器日志的权限,请通过HttpURLConnection#getErrorStream()
读取错误响应的正文,它可能包含错误详细信息。
另见:
How to use URLConnection
to fire and handle HTTP requests