java – 404使用HttpUrlConnection访问Tomcat时,从浏览器访问200
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java – 404使用HttpUrlConnection访问Tomcat时,从浏览器访问200,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3176字,纯文字阅读大概需要5分钟。
内容图文
![java – 404使用HttpUrlConnection访问Tomcat时,从浏览器访问200](/upload/InfoBanner/zyjiaocheng/785/add6f62c3a044067a4c3ed3cbce781b4.jpg)
我得到了最奇怪的Tomcat错误.我有一个在我的localhost上使用tomcat在端口8080上运行的Web应用程序,一切似乎运行良好,没有错误等.但是,当我尝试使用HttpURLConnection类从另一个应用程序访问此Web应用程序时,我收到404错误.奇怪的是,当我在浏览器中放入相同的URL时,它返回200个代码并具有有效的响应.
我已经从这些帖子中尝试/检查了以下内容:post1和post2
>设置用户代理和接受标头.
>我已经检查了响应体(使用HttpURLConnection.getInputStream()以及HttpURLConnection.getErrorStream(),如果404是一个不正确的返回代码),我确实得到了一个页面未找到响应.
>我已经尝试将connection.setDoOutput()设置为true和false但它没有帮助.
>尝试将localhost更改为127.0.0.1.
更多信息,我查看了Tomcat访问日志,看来请求永远不会访问服务器(意味着请求永远不会被记录).但是,当我将URL放入浏览器(并获得有效响应)时,请求会显示在日志中.
还有一件事,我正在使用eclipse运行tomcat.是的,该应用程序正在服务器上部署.
此外,我发现有人似乎有完全相同的问题here,但没有解决方案,所以我把问题带到SO的伟大社区!
编辑:来自应用程序的代码:
出于隐私原因,我保留了隐藏的网址
public static void main(String[] args) {
final String url = "";
try {
URL obj = new URL(url);
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setDoOutput(false);
System.out.println(con.getResponseCode());
System.out.println(getStringFromInputStream(con.getInputStream()));
} catch (Exception e) {
e.printStackTrace();
}
System.out.println("DONE");
}
是的,这适用于其他主机,如谷歌.我从http://www.google.com获得的回复是这样的:
200
<!doctype html><html....>*bunch of html*</html>
DONE
回复http:// localhost:8080 / …:
404
java.io.FileNotFoundException: *url*
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:525)
at sun.net.www.protocol.http.HttpURLConnection$6.run(HttpURLConnection.java:1674)
at sun.net.www.protocol.http.HttpURLConnection$6.run(HttpURLConnection.java:1672)
at java.security.AccessController.doPrivileged(Native Method)
at sun.net.www.protocol.http.HttpURLConnection.getChainedException(HttpURLConnection.java:1670)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1243)
at Get.main(Get.java:32)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:120)
Caused by: java.io.FileNotFoundException: *url*
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1623)
at java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:468)
at Get.main(Get.java:31)
... 5 more
DONE
解决方法:
因此,通过关闭从Eclipse运行的Tomcat并重试应用程序和浏览器请求,我们发现某些进程正在窃取您的请求.
你可以通过运行netstat -nao |来找到小偷在Windows或netstat -nap上找到“8080” Linux上的grep 8080.它应该显示一条LISTENING和127.0.0.1:8080的行,接下来将是进程ID.
内容总结
以上是互联网集市为您收集整理的java – 404使用HttpUrlConnection访问Tomcat时,从浏览器访问200全部内容,希望文章能够帮你解决java – 404使用HttpUrlConnection访问Tomcat时,从浏览器访问200所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。