java发送http的post请求

本文介绍了使用Java发送包含JSON内容的POST请求的方法。通过两个示例代码展示了如何设置请求头、请求体,并解析响应结果为JSON对象或Map。

java发送json内容的post请求

public static JSONObject doPost(String url,JSONObject json){
    DefaultHttpClient client = new DefaultHttpClient();
    HttpPost post = new HttpPost(url);
    JSONObject response = null;
    try {
      StringEntity s = new StringEntity(json.toString());
      s.setContentEncoding("UTF-8");
      s.setContentType("application/json");//发送json数据需要设置contentType
      post.setEntity(s);
      HttpResponse res = client.execute(post);
      if(res.getStatusLine().getStatusCode() == HttpStatus.SC_OK){
        HttpEntity entity = res.getEntity();
        String result = EntityUtils.toString(res.getEntity());// 返回json格式:
        response = JSONObject.fromObject(result);
      }
    } catch (Exception e) {
      throw new RuntimeException(e);
    }
    return response;
  }

或者

public Map queryH5Api (String url,Map paraMap) throws ErrorCodeException{
    try{
        //设置url
        HttpPost httpPost = new HttpPost(url);
        //设置http请求的类型
        httpPost.addHeader("Content-type","application/json; charset=utf-8");
        httpPost.addHeader("Accept","application/json");
        //放入参数
        httpPost.setEntity(new StringEntity(JSONObject.toJSONString(paraMap), Charset.forName("UTF-8")));
        CloseableHttpClient httpClient = HttpClientBuilder.create().build();
        //发送http请求
        HttpResponse response = httpClient.execute(httpPost);
        //获取返回值
        HttpEntity resEntity = response.getEntity();
        String result = EntityUtils.toString(resEntity);
        System.out.println("啦啦啦"+result);
        //把返回值json转为map
        ObjectMapper objectMapper = new ObjectMapper();
        Map<String, Object> maps = objectMapper.readValue(result, Map.class);
        return maps;
    }catch (Exception e){
        LOG.error("h5远程调用失败", e);
        throw new ErrorCodeException(ErrorCodeEnum.ERROR, "h5远程调用失败" + e.getMessage());
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值