httpclient post方法【亲测可用】
很多代码都是根据需求来搞代码的。很早之前的就是给app写的接口,主要项目采用的是基础RMI的项目,服务层不能暴露给外网访问,所以需要给App写转发接口,让App调用其他平台的(内网)接口,重定向很简单的的,但是需要接受其他平台的返回的json。

主要使用的httpClient的post方法:直接上代码
添加依赖:
<!--httpcomponents的包-->
<dependency><groupId>org.apache.httpcomponents</groupId><artifactId>httpclient</artifactId><version>4.5.5</version></dependency><!--JSONobject的包--><dependency><groupId>net.sf.json-lib</groupId><artifactId>json-lib</artifactId><version>2.4</version><classifier>jdk15</classifier></dependency>
工具类:
package com.upiweb.common.util;import net.sf.json.JSONObject;
import org.apache.http.HttpResponse;
import org.apache.http.client.config.RequestConfig;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.ContentType;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;import java.io.IOException;/*** 调用的是接口*/public class SendSignHttpsClient {/*** post请求以及参数是json** @param url* @param jsonParams* @return*/public static JSONObject doPostForJson(String url, String jsonParams) {CloseableHttpClient httpClient = HttpClients.createDefault();JSONObject jsonObject = null;HttpPost httpPost = new HttpPost(url);RequestConfig requestConfig = RequestConfig.custom().setConnectTimeout(180 * 1000).setConnectionRequestTimeout(180 * 1000).setSocketTimeout(180 * 1000).setRedirectsEnabled(true).build();httpPost.setConfig(requestConfig);httpPost.setHeader("Content-Type", "application/json");try {httpPost.setEntity(new StringEntity(jsonParams, ContentType.create("application/json", "utf-8")));System.out.println("request parameters" + EntityUtils.toString(httpPost.getEntity()));System.out.println("httpPost:" + httpPost);HttpResponse response = httpClient.execute(httpPost);if (response != null && response.getStatusLine().getStatusCode() == 200) {String result = EntityUtils.toString(response.getEntity());System.out.println("result:" + result);jsonObject = JSONObject.fromObject(result);return jsonObject;}} catch (Exception e) {e.printStackTrace();} finally {if (null != httpClient) {try {httpClient.close();} catch (IOException e) {e.printStackTrace();}}return jsonObject;}}}
测试代码:
@RequestMapping(value = "get",produces = {"application/json;charset=UTF-8"})@ResponseBodypublic JSONObject get(@RequestBody String json) {LOGGER.info("test");JSONObject jsonObject = SendSignHttpsClient.doPostForJson(+"localost:8080/demo/test",json);return jsonObject;}
在实战中学习,在快乐中成长
----------------分割线------------------------
当时也只是为了记录下遇到的问题,没想到竟然能够帮助那么多人,也是非常的开心,自从参加了工作以后,就想办法开始搞钱,趁着自己年轻,多搞一点是一点,毕竟老了之后也不想吃太多不该吃的苦,该来的总是要来的。
下面主要是一些福利,可以花几分钟了解下,毕竟对个人也能够节省不少的开支。

本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
