【发布时间】:2015-03-28 23:57:20
【问题描述】:
我正在尝试检查服务是否可用并且总是返回相同的错误:
java.io.IOException:服务器返回 HTTP 响应代码:URL 为 403
互联网浏览建议必须注明“USER-AGENT”,我照做了,但错误依旧:
openConnection.addRequestProperty("User-Agent", "Mozilla / 5.0 (Windows NT 6.1; WOW64) AppleWebKit / 537.36 (KHTML, like Gecko) Chrome / 40.0.2214.91 Safari / 537.36");
完整代码为:
url = cadenaURL + cadenaEndpoint;
URLConnection openConnection = new URL(url).openConnection();
openConnection.connect();
is = openConnection.getInputStream();
if ("gzip".equals(openConnection.getContentEncoding()))
is = new GZIPInputStream(is);
错误在:
is = openConnection.getInputStream();
有人可以帮助我吗?
谢谢你, 问候,
【问题讨论】:
-
尝试使用不同的字符串,例如
Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:10.0) Gecko/20100101 Firefox/10.0) -
你确定你有这个url的授权吗?
-
服务器期望什么请求方法?一个GET?一个帖子?一个基本的 URLConnection 不会向服务器发送这样的东西 - 试试像 Apache HttpClient 这样的东西吧?
-
403表示您被禁止访问该页面。这可能有很多原因 - 不一定是用户代理。可能是您应该有一个来自先前交互的 cookie,但您没有发送它。 -
如果服务拒绝GET请求,改变HTTP方式:
HttpURLConnection c = openConnection = new URL(url).openConnection(); c.setRequestMethod("POST or whatever");
标签: java urlconnection