前言:
目前朋友们对“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