java中post发送json格式数据

/**
     * 发送post请求
     * @param URL 数据发送地址
     * @param json json格式数据内容
     * @param headParams 请求头内容
     * @return 请求结果
     */
    public static String sendPost(String URL, Object json, HashMap<String,String> headParams) throws IOException {
        String result = "";
        CloseableHttpClient client = HttpClients.createDefault();
        try {
            HttpPost post = new HttpPost(URL);
            post.setHeader("Content-Type", "application/json");
            //增加请求头参数
            headParams.forEach((key,value) -> {
                post.addHeader(key, value);
            });

            StringEntity s = new StringEntity(json.toString(), "utf-8");
            s.setContentEncoding(new BasicHeader(HTTP.CONTENT_TYPE, "application/json"));
            post.setEntity(s);
            //构建超时等配置信息
            RequestConfig config = RequestConfig.custom().setConnectTimeout(60*1000) //连接超时时间
                    .setConnectionRequestTimeout(60*1000) //从连接池中取的连接的最长时间
                    .setSocketTimeout(60 * 1000) //数据传输的超时时间
                    .build();
            post.setConfig(config);
            CloseableHttpResponse response = client.execute(post);
            try {
                HttpEntity resEntity = response.getEntity();
                //回复接收
                result = EntityUtils.toString(resEntity, "UTF-8");
            } finally {
                response.close();
            }
        } catch (Exception e) {
            throw e;
        }finally {
            client.close();
        }
        return result;
    }

  

posted on 2022-11-24 15:31  七七2020  阅读(394)  评论(0编辑  收藏  举报

导航