dtt3401885的gravatar头像
dtt3401885 2015-01-22 14:51:03

关于java httpClient的问题,两个系统对接为什么接收不到信息?

我们有2个公司系统要对接一下,当我们这边数据发生变化时Controller 会对对方的Controller ,并不是推送到页面。发生推送数据操作,请问是否该使用httpClient,还是使用别的方法,。。版本3.0.1

本人使用了httpClient,在自己本机测试没问题,但是测试同事机器时,对面接收不到信息。或者说直接没有访问对方的方法,。。

代码

    public static String setUeventsend(ueventid){
        def uevent=UEvent.get(ueventid)
        HttpClient       httpClient   = new HttpClient();
        HttpClientParams clientParams = new HttpClientParams();
        String strResponse = "";
        def url=Apiurl.list()
        PostMethod method  = new PostMethod(url[0].url)
        def md5=new MD5()
        def getmd=md5.GetMD5Code(uevent.orderNo)
        NameValuePair[] data =[
            new NameValuePair("CLIENT_ID", uevent.clientcmy.id.toString()),
            new NameValuePair("CONTENT",  uevent.content.toString()),
            new NameValuePair("COORDINATOR_ID",  uevent?.coordinator?.id.toString()),
            new NameValuePair("DATE_ACCEPTED",  uevent.dateAccepted.toString()),
            new NameValuePair("DATE_CLOSED",  uevent.dateClosed.toString()),
            new NameValuePair("DATE_CREATED",  uevent.dateCreated.toString()),
            new NameValuePair("DATE_FINISHED",  uevent.dateFinished.toString()),
            new NameValuePair("EVENT_TYPE_ID",  uevent?.eventType?.id.toString()),
            new NameValuePair("MALUATION_ID",  uevent?.maluation?.id.toString()),
            new NameValuePair("REQUEST_TYPE",  uevent.requestType.toString()),
            new NameValuePair("STATE",  uevent.state.toString()),
            new NameValuePair("TITLE",  uevent.title.toString()),
            new NameValuePair("ADDRESS",  uevent.address.toString()),//应该必填
            //new NameValuePair("PROCESSOR_ID", uevent.clientcmy),
            new NameValuePair("OPERATOR_ID",  uevent.operator.id.toString()),
            new NameValuePair("ORDER_NO",  uevent.orderNo.toString()),
            new NameValuePair("EVENT_PRIORITY",  uevent.eventPriority.toString()),
            new NameValuePair("CREATER_ID",  uevent.creater.toString()),
            new NameValuePair("CLIENTCMY_ID",  uevent.clientcmy.id.toString()),
            new NameValuePair("CLIENTDPT_ID",  uevent.clientdpt.id.toString()),
            new NameValuePair("CREATERCMY_ID",  uevent.creatercmy.id.toString()),
            new NameValuePair("CREATERDPT_ID",  uevent.operator.id.toString()),
            new NameValuePair("OPERATORCMY_ID",  uevent.operatorcmy.id.toString()),
            new NameValuePair("OPERATORDPT_ID",  uevent.operatordpt.id.toString()),
            new NameValuePair("U_EVENT_PROGRESS",  uevent.uEventProgress.toString()),
            new NameValuePair("EVENT_MARK",  '1'),
            new NameValuePair("EQUIPMENT_TOTAL",  uevent.equipmentTotal.toString()),
            new NameValuePair("DATE_ACTIVE",  uevent.dateActive.toString()),
            new NameValuePair("DATE_ASSIGN",  uevent.dateAssign.toString()),
            new NameValuePair("DATE_CLAIM",  uevent.dateClaim.toString()),
            new NameValuePair("DATE_HUNG",  uevent.dateHung.toString()),
            new NameValuePair("DATE_UPGRADE",  uevent.dateUpgrade.toString()),
            new NameValuePair("SIGN",  getmd.toString())
        ]
        method.setRequestBody(data);
        try {
            httpClient.getParams().setContentCharset("GBK");
            // 执行postMethod
            int statusCode = httpClient.executeMethod(method);
            // HttpClient对于要求接受后继服务的请求,象POST和PUT等不能自动处理转发
            // 301或者302
            //    if (statusCode == HttpStatus.SC_MOVED_PERMANENTLY
            //      || statusCode == HttpStatus.SC_MOVED_TEMPORARILY) {
            //     String responseBody = postMethod.getResponseBodyAsString();
            //     log.info(responseBody);
            //     if (responseBody != null) {
            //      if ("succ".equals(responseBody)) { // 发送成功
            //
            //       isSended = true;
            //      }
            //     }
            //    }

            if (statusCode == 200) {
                strResponse = method.getResponseBodyAsString();
            }
        } catch (IllegalArgumentException e) {
            e.printStackTrace();
        } catch (HttpException e) {
            // 发生致命的异常,可能是协议不对或者返回的内容有问题

            e.printStackTrace();
        } catch (IOException e) {
            // 发生网络异常
            e.printStackTrace();
        } finally {
            // 释放连接
            method.releaseConnection();
        }
        return strResponse;

    }

所有回答列表(3)
jsyzthz的gravatar头像
jsyzthz  LV10 2015年1月25日

问题要有核心, 不是贴代码就能解决问题。不能连接的原因有很多需要您提供httpclient的错误信息,可能是连接超时之类的原因,既然你本机能访问那就是应该URL问题或者防火墙端口问题。

hsbs的gravatar头像
hsbs 2015年2月2日

我是邢台中山妇科医院http://www.xtzs120.net的工作人员,感谢您的分享,

溺水的猪的gravatar头像
溺水的猪  LV4 2015年2月3日

难道是防火墙的问题?拦截请求?

顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友