我想使用以下代码从服务器获取响应
(这是它连接的部分)
InputStream is = new URL(url + "?p=" + pnb).openStream();
while (is.available() > 0)
out[i++] = (char) is.read();
为什么当我在浏览器中键入该行时,它工作时会java.io.IOException: Server returned HTTP response code: 403 for URL: http://172.18.19.16:32000/php/test.php?p=662
崩溃?
403
Forbidden
-->
http://en.wikipedia.org/wiki/HTTP_403
有时,某些网站可能会在请求中查找引荐来源或其他参数(如用户代理),如果他们没有看到这些特定参数,他们只是响应错误(在您的情况下是 403)。相同的链接可能会在浏览器上正常打开,因为浏览器会随请求一起发送其他数据,而您不会随自定义请求一起发送。
我用这个解决了它:
URL u = new URL(url + "?p=" + pnb);
URLConnection conn = u.openConnection();
conn.setRequestProperty("User-Agent", "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.4; en-US; rv:1.9.2.2) Gecko/20100316 Firefox/3.6.2");
conn.connect();
InputStream is = conn.getInputStream();
它工作得很好。谢谢阿迪尔@Mohammad帮助我