yuwenliang521 2017-06-09 08:31 采纳率: 0%
浏览 1434

java调用http接口问题

在第三方开店卖商品,我需要把我查到的数据用post形式发给第三方接口!!不会弄啊,
各位哥哥能帮帮我吗http://open.mengdian.com/doc/api/tag/zb_list.html

  • 写回答

2条回答

  • Hefei19881002 2017-06-09 08:38
    关注
    public static String postDataUTF8(Map<String,String> data, String url)
    {
    
        HttpClient httpClient = new HttpClient();
        HttpConnectionManagerParams managerParams = httpClient
                .getHttpConnectionManager().getParams();
        // 设置连接超时时间(单位毫秒)
        managerParams.setConnectionTimeout(connectionTimeout);
        // 设置读数据超时时间(单位毫秒)
        managerParams.setSoTimeout(soTimeout);
        PostMethodUTF8 postMethod = new PostMethodUTF8(url);
        Iterator<String> it = data.keySet().iterator();
    
        NameValuePair[] sendData = new NameValuePair[data.keySet().size()];
        int i = 0;
        String key = "";
        while(it.hasNext())
        {
            key = it.next();
            sendData[i++] = new NameValuePair(key, data.get(key));
        }
    
        postMethod.setRequestBody(sendData);
        postMethod.setRequestHeader("Content-Type","application/x-www-form-urlencoded;charset=UTF-8"); 
        String strResponse = null;
        try {
            int statusCode = httpClient.executeMethod(postMethod);
            //logger.info("--------Connect the interface at time:" + new Date());
            if (statusCode != HttpStatus.SC_OK) {
                strResponse = "error_第三方返回非200状态码";
                throw new IllegalStateException("Method failed: "
                        + postMethod.getStatusLine());
            }
            strResponse = postMethod.getResponseBodyAsString();
            if(NetCheckFieldsUtil.isBlank(strResponse)){
                strResponse = "error_第三方返回空数据";
            }
            //System.out.println("getResponseCharSet:"+postMethod.getResponseCharSet());
            //System.out.println("getRequestCharSet:"+postMethod.getRequestCharSet());
        }catch(UnsupportedEncodingException e){
            e.printStackTrace();
            logger.error("UnsupportedEncodingException:",e);
            strResponse = "error_发生UnsupportedEncodingException异常,未能成功调用第三方";
        }catch(IllegalStateException e){
            e.printStackTrace();
            logger.error("IllegalStateException:",e);
    

    // strResponse = "error_发生IllegalStateException异常,未能成功调用第三方";
    } catch (ConnectTimeoutException e) {
    // System.out.println("time out");
    e.printStackTrace();
    // throw new java.net.SocketTimeoutException("time out");
    logger.error("ConnectTimeoutException:",e);
    strResponse = "error_请求第三方时发生ConnectTimeoutException异常";
    } catch(SocketTimeoutException e){
    e.printStackTrace();
    logger.error("SocketTimeoutException:",e);
    strResponse = "error_请求第三方时发生SocketTimeoutException异常";
    }catch (Exception ex) {
    ex.printStackTrace();
    // throw new IllegalStateException(ex.toString());
    logger.error("Exception:",ex);
    strResponse = "error_请求第三方时发生未知异常";
    } finally {
    postMethod.releaseConnection();
    }
    //logger.info(strResponse);
    return strResponse;
    }

    评论

报告相同问题?

悬赏问题

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