该方法为Apache HttpClient 4.5以上的版本支持,在官网有明确的说明。
    对比以前的方式,其优点是代码更简洁,同时为线程安全的。仅举一个最简单的post栗子

    JAR包信息:

    1. <dependency>
    2. <groupId>org.apache.httpcomponents</groupId>
    3. <artifactId>httpclient</artifactId>
    4. <version>4.5.1</version>
    5. </dependency>
    1. package utils;
    2. import com.alibaba.fastjson.JSONObject;
    3. import org.apache.http.client.fluent.Request;
    4. import org.apache.http.entity.ContentType;
    5. import java.io.IOException;
    6. /**
    7. * Created with IntelliJ IDEA.
    8. * Description:
    9. * Http请求工具类
    10. *
    11. * @author
    12. * Date: 2017-11-01
    13. * Time: 10:24
    14. */
    15. public class HttpClientUtil {
    16. /**
    17. * @return String
    18. * 响应体
    19. */
    20. public String jsonPostHttp(JSONObject jsonObject, String url) throws IOException {
    21. String response = Request.Post(url).bodyString(jsonObject.toString(), ContentType.APPLICATION_JSON).execute().returnContent().asString();
    22. System.out.println(response); // 将返回的内容打印出来便于调试
    23. return response;
    24. }
    25. }

    测试代码:

    1. package utilsTest;
    2. import com.alibaba.fastjson.JSONObject;
    3. import org.junit.Test;
    4. import utils.HttpClientUtil;
    5. import java.io.File;
    6. import java.io.IOException;
    7. public class HttpClientUtilTest {
    8. @Test
    9. public void httpClientUtilTest(){
    10. JSONObject jsonObject = new JSONObject();
    11. // 根据业务需要,定义JSONObject所需的参数
    12. jsonObject.put("appId", "1");
    13. jsonObject.put("userName", "admin");
    14. jsonObject.put("password", "111111");
    15. HttpClientUtil httpClientUtil = new HttpClientUtil();
    16. try {
    17. httpClientUtil.jsonPostHttp(jsonObject,"http://localhost/manage/auth/login.do");
    18. } catch (IOException e) {
    19. e.printStackTrace();
    20. }
    21. }