bxxo880917 2016-02-17 01:18 采纳率: 0%
浏览 4535

http请求报错:Bad chunk header

今天远程访问别的服务器的时候报了一个错误:Bad chunk header
就在EntityUtils.toString(response__input.getEntity())的时候
如果我加了一些限制条件,让他传过来的json数据少一点的话就没问题,数据多了就报这个错误,哪位大神帮我看一下:
代码如下:
public List getAllResultList() {
if (allResultList == null) {
User user = loginUser.getUser();
String mobile = user.getMobileNumber();

        List<AgentInfo> agentInfo = agentService.getAgentInfoByPhone(mobile);

        if (agentInfo.size() > 0) {
            try {
                String url_input = configService.getConfigValue(AGENT_INPUT_ACCOUNT_URL_ID);
                HttpGet get_input = null;

                JSONObject jsonObject = new JSONObject();   
                jsonObject.put("id", "");  
                jsonObject.put("bh", ""); 
                jsonObject.put("mno", "");
                jsonObject.put("mname", "");
                jsonObject.put("subno", "");   

                if (StringUtils.isNotBlank(agentInfo.get(0).getCode())) {
                    if (StringUtils.isNotBlank(agentInfo.get(0).getDepartmentId())) {
                        jsonObject.put("id", agentInfo.get(0).getDepartmentId());
                    }
                    jsonObject.put("bh", agentInfo.get(0).getCode());
                    if (StringUtils.isNotBlank(agentQuey)) {
                        if (StringUtils.isNumeric(agentQuey)) {
                            if (agentQuey.length()==15) {
                                jsonObject.put("mno", "'" + agentQuey + "'");
                            }else{
                                if (StringUtils.isNotBlank(agentQuey)) {
                                    //FIXME 商户号错误!
                                    return null;
                                }
                            }
                        }else{
                            jsonObject.put("mname", "'" + agentQuey + "'");
                        }
                    }
                }else{
                    if (StringUtils.isNotBlank(agentInfo.get(0).getDepartmentId())) {
                        jsonObject.put("id", agentInfo.get(0).getDepartmentId());
                    }
                    if (StringUtils.isNotBlank(salesCode)) {
                        jsonObject.put("bh", "'" + salesCode + "'");
                    }else{
                        if (StringUtils.isNotBlank(agentQuey)) {
                            if (StringUtils.isNumeric(agentQuey)) {
                                if (agentQuey.length()==15) {
                                    jsonObject.put("mno", "'" + agentQuey + "'");
                                }else{
                                    if (StringUtils.isNotBlank(agentQuey)) {
                                        //FIXME 商户号错误!
                                        return null;
                                    }
                                }
                            }else{
                                jsonObject.put("mname", "'" + agentQuey + "'");
                            }
                        }
                    }
                }

                get_input = new HttpGet(url_input+AGENT_INPUT_ACCOUNT_URL+"/"+java.net.URLEncoder.encode(jsonObject.toString(), "utf-8"));

                HttpClient client_input = HttpClientBuilder.create().build();
                HttpResponse response_input = client_input.execute(get_input);
                if(response_input.getStatusLine().getStatusCode() == 200){
                    String test = EntityUtils.toString(response_input.getEntity());
                    test = test.substring(test.indexOf("{"), test.length());
                    JSONObject object_input = JSONObject.fromObject(test);
                    System.out.println(object_input);
                    String code_input = object_input.getString("code");
                    if(Integer.parseInt(code_input) > 0){
                        FacesUtil.addErrorMessage(object_input.getString("msg"));
                        return null;
                    }else if(Integer.parseInt(code_input) == 0){
                        JSONArray jsonArray = (JSONArray) object_input.get("result");
                        List<Map<String,Object>> agentList = new ArrayList<Map<String,Object>>(jsonArray.size());

                        for (int m = 0; m < jsonArray.size(); m++){
                            String salesCode = ((JSONObject) jsonArray.get(m)).getString("ywyno");
                            String salesMan = ((JSONObject) jsonArray.get(m)).getString("ywtzr");

                            Map<String,Object> mapResult = new HashMap<String, Object>();
                            mapResult.put("salesCode", salesCode);
                            mapResult.put("salesMan", salesMan);
                            agentList.add(mapResult);
                        }

                        for (int i = 0; i < agentList.size(); i++)  //外循环是循环的次数
                        {
                            for (int j = agentList.size() - 1 ; j > i; j--)  //内循环是 外循环一次比较的次数
                            {

                                if (agentList.get(i).get("salesCode").equals(agentList.get(j).get("salesCode")))
                                {
                                    agentList.remove(j);
                                }

                            }
                        }
                        allResultList = agentList;
                        return allResultList;
                    }
                }else{
                    //FIXME 连接错误!
                    FacesUtil.addErrorMessage("对不起,连接错误,请稍后再试!");
                    return null;
                }
            } catch (Exception e) {
                e.printStackTrace();
                return null;
            }
        }else{
            //FIXME 不是代理商跳转到申请商户页面
            FacesUtil.addErrorMessage("对不起,您不是代理商!");
            return null;
        }
        return null;
    }
    return allResultList;
}


报的错误是:
Hibernate: select this_.id as id47_0_, this_.code as code47_0_, this_.department_id as department3_47_0_, this_.name as name47_0_, this_.phone as phone47_0_ from agent_info this_ where this_.phone=?

org.apache.http.MalformedChunkCodingException: Bad chunk header
at org.apache.http.impl.io.ChunkedInputStream.getChunkSize(ChunkedInputStream.java:251)

at org.apache.http.impl.io.ChunkedInputStream.nextChunk(ChunkedInputStream.java:206)
at org.apache.http.impl.io.ChunkedInputStream.read(ChunkedInputStream.java:169)
at org.apache.http.conn.EofSensorInputStream.read(EofSensorInputStream.java:137)
at sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:283)
at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:325)
at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:177)
at java.io.InputStreamReader.read(InputStreamReader.java:184)
at java.io.Reader.read(Reader.java:140)

at org.apache.http.util.EntityUtils.toString(EntityUtils.java:244)
at org.apache.http.util.EntityUtils.toString(EntityUtils.java:288)
  • 写回答

1条回答

  • devmiao 2016-02-18 20:26
    关注
    评论

报告相同问题?

悬赏问题

  • ¥15 树莓派与pix飞控通信
  • ¥15 自动转发微信群信息到另外一个微信群
  • ¥15 outlook无法配置成功
  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题