我需要向网页发送请求。在过去,我使用过HttpURLConnection,一切正常。当我这次尝试做同样的事情时,我得到500返回代码。通常,这意味着服务器上存在问题,但我实际上可以将网址直接粘贴到网络浏览器中,我就可以毫无问题地到达那里。 (浏览器未加载缓存版本。)
java.net.URL myURL = new java.net.URL(STRING_OF_URL_TO_BE_VISITED);
java.net.HttpURLConnection connection = (java.net.HttpURLConnection) myURL.openConnection();
connection.setRequestMethod("GET");
connection.setRequestMethod("User-Agent","Mozilla/5.0");
connection.connect();
Integer responseCode = connection.getResponseCode();
String headerItem = "";
String headerKey = "";
for(Integer i = 0; ; i++)
{
headerKey = connection.getHeaderFieldKey(i);
headerItem = connection.getHeaderField(i);
if(headerKey == null)
headerKey = "";
else
headerKey += ": ";
if(headerItem == null)
break;
System.out.println(headerKey + headerItem);
}
响应标题看起来像
HTTP/1.1 500 Internal Server Error
Content-Type: text/html;charset=UTF-8
Content-Language: en-US
Server: Microsoft-IIS/7.5
Set-Cookie: JSESSIONID=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx; Path=/webapps/myWebApp; Secure
X-appserver: myserver.mydomain.com
P3P: CP="CAO PSA OUR"
Date: Thu, 31 Jul 2014 19:24:19 GMT
Content-Length: 25912
一位同事认为可能网页试图重定向到另一个网页,但我在标题中看不到位置线,所以我不知道它会如何重定向。
我已经尝试保持连接存活并听取另一个响应,但我再也没有得到另一个。