java - HttpURLConnection 和浏览器连接之间的区别

标签 java http servlets httpwebrequest httpurlconnection

我正在尝试通过 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/

相关文章:

java - getResource 无法导出到 jar 中

java - 使用 fop 1.1 打印时出现空白页

google-app-engine - 在 Google App Engine 中的 session cookie 上设置 httpOnly 和安全标志

java - Javaee 中的 SSL/TLS 协议(protocol)版本

java - 将本地新对象传递给线程,线程安全吗?

java - 返回泛型类型 <String,Double>

javascript - 如何优雅地将在线 JavaScript 依赖项添加到源代码中?

.net - Flurl.Http 自定义错误

node.js - 使用 nginx 处理另一台服务器产生的错误

java - 什么是适合与 Vaadin 一起使用的紧凑、可嵌入的 Servlet 容器?