龙空技术网

Java Post请求工具类,非常实用,建议收藏

编程课堂 695

前言:

目前朋友们对“apachepostjson”大约比较关注,大家都需要剖析一些“apachepostjson”的相关内容。那么小编同时在网摘上汇集了一些对于“apachepostjson””的相关知识,希望姐妹们能喜欢,我们快快来学习一下吧!

核心代码:

import java.util.Map;import java.util.List;import java.util.Iterator;import java.util.ArrayList;import java.io.IOException;import java.io.InputStream;import java.nio.charset.Charset;import java.io.ByteArrayOutputStream;import org.apache.http.HttpEntity;import org.apache.http.HttpHeaders;import org.apache.http.HttpResponse;import org.apache.http.util.EntityUtils;import org.apache.http.entity.StringEntity;import org.apache.http.impl.client.HttpClients;import org.apache.http.client.methods.HttpPost;import org.apache.http.message.BasicNameValuePair;import org.apache.http.client.methods.HttpUriRequest;import org.apache.http.impl.client.HttpClientBuilder;import org.apache.http.impl.client.CloseableHttpClient;import org.apache.http.client.entity.UrlEncodedFormEntity;import org.apache.http.client.methods.CloseableHttpResponse;/** * Post请求工具类 */public class PostUtil {    public static final String UTF8 = "utf-8";    private static final String CONTENT_TYPE = "application/json";    public static String send(String url, Map<String, String> headers, Object params) {        try {            if (params instanceof Map)                return sendMap(url, headers, (Map<String, Object>)params);            else                return sendJson(url, headers, (String)params);        } catch (Exception e){            return null;        }    }    public static String sendMap(String url, Map<String, String> headers, Map<String, Object> params) throws IOException {        List<BasicNameValuePair> pairs = new ArrayList<>();        for (Iterator<String> iterator = params.keySet().iterator(); iterator.hasNext();) {            String name = iterator.next();            Object value = params.get(name);            pairs.add(new BasicNameValuePair(name, String.valueOf(value)));        }        UrlEncodedFormEntity entity = new UrlEncodedFormEntity(pairs, UTF8);        return doAction(url, headers, entity);    }    public static String sendJson(String url, Map<String, String> headers, String params) throws IOException {        StringEntity entity = new StringEntity(params, UTF8);        return doAction(url, headers, entity);    }    private static String doAction(String url, Map<String, String> headers, StringEntity body) throws IOException {        HttpPost post = new HttpPost(url);        post.setEntity(body);        for (String key : headers.keySet())            post.addHeader(key, headers.get(key));        CloseableHttpClient client = HttpClients.createDefault();        CloseableHttpResponse response = client.execute(post);        HttpEntity entity = response.getEntity();        String result = null;        if (entity != null)            result = EntityUtils.toString(entity, UTF8);        response.close();        return result;    }    /**     * 发送 POST JSON 请求     */    public static String postJson(String url, String data) {        HttpClientBuilder builder = HttpClientBuilder.create();        HttpUriRequest request = null;        // POST请求        HttpEntity entity = new StringEntity(data, UTF8);        HttpPost post = new HttpPost(url);        post.setEntity(entity);        request = post;        request.setHeader(HttpHeaders.CONTENT_TYPE, CONTENT_TYPE);        try (CloseableHttpClient closeableHttpClient = builder.build()) {            HttpResponse resp = closeableHttpClient.execute(request);            InputStream respIs = resp.getEntity().getContent();            byte[] respBytes = toByteArray(respIs);            String result = new String(respBytes, Charset.forName(UTF8));            return result;        } catch (Exception e) {            e.printStackTrace();        }        return null;    }    private static byte[] toByteArray(InputStream is) throws IOException {        ByteArrayOutputStream output = new ByteArrayOutputStream();        try {            byte[] b = new byte[4096];            boolean var3 = false;            int n;            while ((n = is.read(b)) != -1) {                output.write(b, 0, n);            }            byte[] var4 = output.toByteArray();            return var4;        } finally {            output.close();        }    }}

路漫漫其修远兮,吾将上下而求索

译文:在追寻真理方面,前方的道路还很漫长,但我将百折不挠,不遗余力地去追求和探索。

如果您有什么好的想法与方法,欢迎在评论区留言,我们一起讨论~

标签: #apachepostjson