2 yoshiontwo YoshionTwo 于 2015.07.14 15:15 提问

http协议系统之间交互,出现的编程的报错。我该怎样修改?求大神啊

现在我们系统跟gps之间交互,我采用的httpClient,可是每次跑程序的时候都会报错

 java.net.SocketException: Software caused connection abort: recv failed
    at java.net.SocketInputStream.socketRead0(Native Method)
    at java.net.SocketInputStream.read(Unknown Source)
    at org.apache.http.impl.io.SessionInputBufferImpl.streamRead(SessionInputBufferImpl.java:139)
    at org.apache.http.impl.io.SessionInputBufferImpl.fillBuffer(SessionInputBufferImpl.java:155)
    at org.apache.http.impl.io.SessionInputBufferImpl.readLine(SessionInputBufferImpl.java:284)
    at org.apache.http.impl.conn.DefaultHttpResponseParser.parseHead(DefaultHttpResponseParser.java:140)

我的实现的代码

 public String sendMessage(String xmlMessage)throws Exception{

         // 创建默认的httpClient实例.     
               CloseableHttpClient httpclient = HttpClients.createDefault();  
               // 创建httppost     
                HttpPost httppost = new HttpPost("http://192.168.46.35:8080/BGpsWeb/gpsForeignInterface/shipLocation.do");  


         String responseMessage=null;
        List<NameValuePair> formparams = new ArrayList<NameValuePair>();
        //formparams.add(new BasicNameValuePair("cqdd", xmlMessage));
        formparams.add(new BasicNameValuePair("cqdd", xmlMessage));
        UrlEncodedFormEntity entity;

        try {  
            entity = new UrlEncodedFormEntity(formparams, "GBK");
            httppost.setEntity(entity);  
            System.out.println("executing request " + httppost.getURI());  
            CloseableHttpResponse response = httpclient.execute(httppost);  
            try {  
                HttpEntity reEntity = response.getEntity();  
               if (entity != null) {  
                    System.out.println("--------------------------------------"); 
                    responseMessage=EntityUtils.toString(reEntity);
                   //System.out.println("Response content: " + EntityUtils.toString(reEntity, "UTF-8"));  
                    System.out.println("--------------------------------------");  
                }  
            } finally {  
                response.close();  
                }  
            } catch (ClientProtocolException e) {  
                e.printStackTrace();  
            } catch (UnsupportedEncodingException e1) {  
                e1.printStackTrace();  
            } catch (IOException e) {  
                e.printStackTrace();  
            } finally {  
                // 关闭连接,释放资源     
                try {  
                  httpclient.close();  
               } catch (IOException e) {  
                    e.printStackTrace();  
                }  
            }  

        return responseMessage;

    }

2个回答

dcxy0
dcxy0   Ds   Rxr 2015.07.14 15:26

1.用本机电脑ping一下你要连接的地址是可用的嘛?

2.需要长连接嘛?你那个错误,貌似是连接问题,有可能是网络不稳定造成的。

YoshionTwo
YoshionTwo 这两个问题应该都不是的。
大约 3 年之前 回复
oyljerry
oyljerry   Ds   Rxr 2015.07.14 16:23

是不是你读取数据的时候异常了。服务器返回的数据你处理正确吗

YoshionTwo
YoshionTwo 其实我是像gps推送信息,都不需要返回值的。刚刚我测的时候要他设断点走一遍没报错,接着测了几次都不报错,但是我隔一段时间再去请求就报错了。这是个什么问题?
大约 3 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
Java不同系统不同语言之间的交互
不同系统不同语言之间的交互   现在我们常见的不同系统不同语言之间的交互使用WebService,Http请求。WebService,即“Web服务”,简写为WS。从字面上理解,它其实就是“基于Web的服务”。而服务却是双方的,有服务需求方,就有服务提供方。服务提供方对外发布服务,服务需求方调用服务提供方所发布的服务。如果说得再专业一点,WS其实就是建立在HTTP协议上实现异构系统通讯的
HTTP 交互
HTTP是超文本转移协议,是客户端浏览器或其他程序与Web服务器之间的应用层通信协议。在Internet上的Web服务器上存放的都是超文本信息, 客户机需要通过HTTP协议传输所要访问的超文本信息。HTTP包含命令和传输信息,不仅可用于Web访问,也可以用于其他因特网/内联网应用系统之间的通信,从而实现各类应用资源超媒体访问的集成。智能终端与服务器数据交互很多都是通过http来完成的,本文对HTT
不同系统不同语言之间的交互
当我们架设一个系统的时候通常需要考虑到如何与其他系统交互,所以我们首先需要知道各种系统之间是如何交互的,使用何种技术实现。   1. 不同系统不同语言之间的交互   现在我们常见的不同系统不同语言之间的交互使用WebService,Http请求。WebService,即“Web 服务”,简写为 WS。从字面上理解,它其实就是“基于 Web 的服务”。而服务却是双方的,有服务需求方,就有服务提供
小白学分布式程序开发2-分布式架构下系统间交互的5种通信模式
分布式架构下系统间交互的5种通信模式 1、request/response模式 (同步模式)        客户端发起请求一直阻塞到服务端返回请求为止。普通的HTTP请求都属于同步模式。 2、Callback(异步模式)         客户端发送一个RPC请求给服务器,服务端处理后再发送一个消息给消息发送端
计算机网络应用层之HTTP协议
一、什么是HTTP协议 HTTP是HyperText Transfer Protocol即超文本传输协议的缩写,是Web应用层协议之一。 HTTP协议由两部分程序实现:一个客户机程序和一个服务器程序,它们运行在不同的端系统中,通过交换HTTP报文运行会话。HTTP定义了Web客户机是如何向Web服务器请求Web页面,以及服务器如何将Web页面传送给客户机的。 HTTP使用TC
微服务架构下基于HTTP协议的通信及状态保存机制
微服务架构下基于HTTP协议的通信及状态保存机制——“串联简单基本原理,分享微服务实践经验“之一。 本文主要面向我带的项目组中的大多数初中级开发者,串联基本知识,分享开发微服务架构项目的实践经验。本文会涉及到Http协议的基本概念;浏览器和服务器之间的状态保持:Cookie和Session ;有状态和无状态应用的区别;服务端无状态的身份信息保留机制、共享Session的处理机制,以及一个SpringCloud项目实例
Unity3D中的http通信
前言 Unity3d 是一个跨平台的引擎,在移动互联网浪潮之中,尤其是移动游戏3d方向上,Unity3d 毫无疑问是最耀眼的明星。Unity3d的http通信很简单,也非常好用,下面通过http和php sever交互来简单介绍一下。 http 提交数据原理  http 协议通过 url来获取和提交数据 。提交数据的方式 有两种,一种是get方法,一种是post方法。get一般用
系统间接口设计
最近两年一直在和银行、公安、保险、民政等第三方单位之间做接口,写的接口文档不下30份,最初的接口文档漏洞百出,改了又改,丢了不少人,也被批评、埋怨,指责了很多次,久而久之,明白了一个最重要的道理,协作决定接口。双方谈接口时,技术不是最重要的,要兼顾双方技术,成本,工期等等很多因素。但仍有很多技术层面的心得,恰巧上周参与温昱老师的一个性能设计的外训,里面老师讲到了接口设计,正好回来一起整理一下接口设
如何实现基于tcp进行http交互
如何实现基于tcp协议进行http协议交互。手机网页遥控器,其实就是在 android端利用 SocketServer 启动tcp协议进行http协议交互。源码开放给大家了,大家可以根据自己的需要,进行修改。 点击下满链接 下载代码 demo
HTTP协议格式和header、交互过程
HTTP协议格式请求例子GET https://baidu.com HTTP/1.1 Host: gwtest.pawjzs.com Connection: Keep-Alive Accept-Encoding: gzip User-Agent: okhttp/3.2.0username=123&passwrd=123概述:请求方法 url 协议版本 header字段名称:值 …. h