我正在尝试通过 HttpURLConnection 连接到网页,但它的响应与常规浏览器(firefox、chrome)不同。我收到错误 500。
使用相同的代码我可以获得“任何其他”页面(例如谷歌)。我的代码贴在下面,但我很确定它没问题。
使用“实时 HTTP header ”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");
//...
最佳答案
这可能是由一切原因引起的。服务器可能依赖于某些请求参数的存在。服务器可能依赖于有效 session 。服务器可能会嗅探用户代理。等等等等。阅读服务器日志以了解错误原因。或者,如果您无权访问服务器日志,请阅读 HttpURLConnection#getErrorStream()
的错误响应正文。 ,它可能包含错误详细信息。
另见:
关于java - HttpURLConnection 和浏览器连接之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3893842/