当前位置: 首页 > 面试题库 >

httpClient.execute(httpget,responseHandler)中的ClientProtocolException

田翔
2023-03-14
问题内容

我正在使用以下代码从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地址。任何帮助将非常感激。


问题答案:

正如您的代码似乎是正确的那样,您必须弄清楚:这是客户端的错误(无效的请求)还是服务器的错误(无效的响应)。为此,请使用http跟踪实用程序,并将浏览器的请求与客户端的请求进行比较。您还可以查看来自服务器的原始响应(如果有)。如果您无法解决问题,请添加原始请求和问题的答案,然后有人可能会提供帮助。



 类似资料:
  • 我正在尝试从远程服务器获取响应。下面是我的代码: 在行中出现以下异常: IllegalStateException:目标主机不能为空,或在参数中设置。scheme=null,host=null,path=http://www.pappico.ru/promo.php?action=registerUser&params={“userid”:1,“username”:“ithsoftsuve+...

  • 问题内容: 我正在浏览此网站http://givemepass.blogspot.hk/2011/12/http- server.html 尝试使用android应用程序连接PHP服务器来获取消息。 GetServerMessage.java GetPhpServerMessageDemoActivity.java 我试图从该站点下载Android应用程序项目http://uploadingit.

  • 向传递的 URL 发出一个 GET 请求。 使用 XMLHttpRequest web API 向给定的 url 发出 get 请求。 通过调用给定的 callback 和 responseText 来处理 onload 事件。 通过运行提供的 err 函数,处理onerror事件。 省略第四个参数 err ,默认将错误记录到控制台的 error 流。 const httpGet = (url,

  • 我的android应用程序一直在崩溃。我正在尝试通过电话后连接到网络服务。但是我的应用程序每次尝试调用网络服务时都会崩溃。

  • 我试图使用Apache HTTPClient执行一个简单的get请求,但是看起来好像所有的代码在HTTP响应=client.execute(get);被跳过。我无法访问响应对象的内容,它们都是空的。然而,当我使用调试模式,我探索的对象,我看到所有的数据。这个函数被包装在一个异步任务中,所以我想知道任务本身是否在等待它被执行或者我不确定的事情。 这里也发生了类似的事情:httpclient之后的An

  • 我只是复制了的所有jar文件,但是不能导入所有这些jar文件,它给出一个错误:。