我正在使用以下代码从 Web 服务器请求 xml:
HttpClient httpclient = new DefaultHttpClient()
try
{
HttpGet httpget = new HttpGet("http://63.255.173.242/get_public_tbl.cgi?A=1");
ResponseHandler responseHandler = new BasicResponseHandler();
String responseBody = httpclient.execute(httpget, responseHandler);
System.out.println(responseBody);
}
catch (ClientProtocolException e)
{
e.printStackTrace();
}
catch (IOException e)
{
e.printStackTrace();
}
finally
{
httpclient.getConnectionManager().shutdown();
}
当我调用 httpclient.execute(httpget, responseHandler) 时,我得到一个 clientProtocolException。url 在 web 浏览器中工作得很好,它返回 xml 并且浏览器显示它。
任何想法为什么我会得到一个 clientProtocolException 而浏览器却可以很好地处理它?
编辑1:
查看协议异常,详细消息是:“服务器未能以有效的 HTTP 响应响应”。我无法更改正在访问的 Web 服务器。有没有办法忽略这一点而只访问响应?
编辑2:
我发现服务器没有发回完整的标头。即使返回损坏的标头,有没有办法访问响应的内容?
编辑 3:我将 IP 地址编辑为我要访问的真实 IP 地址。任何帮助将非常感激。