java – URL可以使用浏览器访问,但是仍然是具有URLConnection的F
发布时间:2020-12-14 06:01:24 所属栏目:Java 来源:网络整理
导读:我使用HttpURLConnection连接到一个网站,并收到一个ResponseCode = 404(HTTP_NOT_FOUND).但是,我的浏览器(IE)中打开网站没有问题. 为什么有区别,我能做些什么呢? 问候,帕潘 这是我的节目 import java.io.BufferedReader;import java.io.InputStreamReader;i
我使用HttpURLConnection连接到一个网站,并收到一个ResponseCode = 404(HTTP_NOT_FOUND).但是,我的浏览器(IE)中打开网站没有问题.
为什么有区别,我能做些什么呢? 问候,帕潘 这是我的节目 import java.io.BufferedReader; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.URL; import java.net.URLConnection; public class TestGet { private static URL source; public static void main(String[] args) { doGet(); } public static void doGet() { try { source = new URL("http://localhost:8080/"); System.out.println("Url is" + source.toString()); URLConnection connection = source.openConnection(); connection.setRequestProperty("User-Agent","Mozilla/5.0 ( compatible ) "); connection.setRequestProperty("Accept","*/*"); connection.setDoInput(true); connection.setDoOutput(true); System.out.println(((HttpURLConnection) connection).getResponseCode()); BufferedReader rdr = new BufferedReader(new InputStreamReader( connection.getInputStream())); StringBuffer b = new StringBuffer(); String line = null; while (true) { line = rdr.readLine(); if (line == null) break; b.append(line); } } catch (Exception e) { e.printStackTrace(); System.err.println(e.toString()); } } } 堆栈跟踪 Url ishttp://localhost:8080/ 404 java.io.FileNotFoundException: http://localhost:8080/ at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) at java.lang.reflect.Constructor.newInstance(Unknown Source) at sun.net.www.protocol.http.HttpURLConnection$6.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at sun.net.www.protocol.http.HttpURLConnection.getChainedException(Unknown Source) at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source) at TestGet.doGet(TestGet.java:28) at TestGet.main(TestGet.java:11) Caused by: java.io.FileNotFoundException: http://localhost:8080/ at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source) at java.net.HttpURLConnection.getResponseCode(Unknown Source) at TestGet.doGet(TestGet.java:26) ... 1 more java.io.FileNotFoundException: http://localhost:8080/ 解决方法
您的404错误意味着没有找到请求的响应.首先,您需要确保在http:// localhost:8080 /上提供服务器,并且必须以代码200返回一些内容.如果没有,那么我们无法帮助您.
测试网址是否存在任何东西的最简单的方法是将网址粘贴到Web浏览器地址栏上,然后单击.但是,这并不能保证Java代码能够访问它.例如,如果服务器被设计为响应404,如果它找不到web浏览器User-Agent头. 由于服务器返回200或404的状态码,因此这不是防火墙问题. 根据您的最新版本的问题,您可以使用Web浏览器查看它,但无法使用您的java代码下载它,并且标题似乎设置正确.我只能看到两个问题: >你不应该设置connection.setDoOutput(true);真实这将强制连接进行HTTP POST而不是GET,并且服务器可能不支持POST. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |