当前位置: 代码迷 >> J2EE >> httpClient怎么接收格式异常的响应头部信息
  详细解决方案

httpClient怎么接收格式异常的响应头部信息

热度:90   发布时间:2016-04-22 00:49:45.0
httpClient如何接收格式错误的响应头部信息
使用 httpClient 从服务器端读取数据,出现异常 :  
Caused by: org.apache.http.ProtocolException: The server failed to respond with a valid HTTP response
执行的代码如下: 
Java code
public static String getResultByHttpGet()            throws ClientProtocolException, IOException    {        String result = "";                String url="http://192.168.1.83/imonitorint.html?op=r&33032=0";        HttpGet httpGet = new HttpGet(url);                //执行这行代码时出错        HttpResponse response = new DefaultHttpClient().execute(httpGet);        if (response.getStatusLine().getStatusCode() == 200)        {            HttpEntity entity = response.getEntity();            result = EntityUtils.toString(entity, "GB2312");        }        return result;    }
 
String url="http://192.168.1.83/imonitorint.html?op=r&33032=0";
这个url在浏览器中直接打开是有返回结果的,但是在代码中执行就会出错
通过ie浏览器插件httpwatch,查看服务器端返回的response的全部内容,发现返回的header为空。
如下图 :

如何使HttpClient接受格式错误的响应头部信息,博客网上有人介绍,但是不够详细: 
http://www.cnblogs.com/loveyakamoz/archive/2011/07/21/2113251.html
之前发帖讨论过这个问题,但是没有解决: 
http://topic.csdn.net/u/20120816/16/f1092599-6b75-4216-aa24-b5f3f95fde6d.html?seed=814375011&r=79432055#r_79432055

全部的错误信息 :
org.apache.http.client.ClientProtocolException
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:822)
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:754)
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:732)
at com.osee.yws.httpAgreement.HttpAgreement.getResultByHttpGet(HttpAgreement.java:50)
at com.osee.yws.bll.LCDOptionBll.readLcdOption(LCDOptionBll.java:104)
at com.osee.yws.bll.LCDOptionBll.readInput(LCDOptionBll.java:73)
at com.osee.yws.gui.SetDeviceOptionLCD$1.windowOpened(SetDeviceOptionLCD.java:74)
at java.awt.AWTEventMulticaster.windowOpened(Unknown Source)
at java.awt.AWTEventMulticaster.windowOpened(Unknown Source)
at java.awt.Window.processWindowEvent(Unknown Source)
at javax.swing.JDialog.processWindowEvent(Unknown Source)
at java.awt.Window.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$000(Unknown Source)
at java.awt.EventQueue$1.run(Unknown Source)
at java.awt.EventQueue$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue$2.run(Unknown Source)
at java.awt.EventQueue$2.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
Caused by: org.apache.http.ProtocolException: The server failed to respond with a valid HTTP response
at org.apache.http.impl.conn.DefaultResponseParser.parseHead(DefaultResponseParser.java:109)
  相关解决方案