| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122 |
- package cn.com.lzt.common.util;
- 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();
- }
- }
- }
|