http-httpClient方式调用

导入几个关键的jar包

<!-- https://mvnrepository.com/artifact/com.google.guava/guava --> <dependency> <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> <version>27.1-jre</version> </dependency>

工具类

package com.zkml.gov_portal_zuul.utils;

import org.springframework.util.StreamUtils;

import java.net.HttpURLConnection;
import java.net.URL;
import java.nio.charset.Charset;
import java.util.Map;
import java.util.Map.Entry;

public class HttpUtil {
   /**
    * 模拟浏览器的请求
    * @param httpURL 发送请求的地址
    * @param params  请求参数
    * @return
    * @throws Exception
    */
   public static String sendHttpRequest(String httpURL, Map<String,String> params) throws Exception {
      //建立URL连接对象
      URL url = new URL(httpURL);
      //创建连接
      HttpURLConnection conn = (HttpURLConnection) url.openConnection();
      //设置请求的方式(需要是大写的)
      conn.setRequestMethod("POST");
      //设置需要输出
      conn.setDoOutput(true);
      //判断是否有参数.
      if(params!=null&&params.size()>0){
         StringBuilder sb = new StringBuilder();
         for(Entry<String,String> entry:params.entrySet()){
            sb.append("&").append(entry.getKey()).append("=").append(entry.getValue());
         }
         //sb.substring(1)去除最前面的&
         conn.getOutputStream().write(sb.substring(1).toString().getBytes("utf-8"));
      }
      //发送请求到服务器
      conn.connect();
      //获取远程响应的内容.
      String responseContent = StreamUtils.copyToString(conn.getInputStream(),Charset.forName("utf-8"));
      conn.disconnect();
      return responseContent;
   }
   /**
    * 模拟浏览器的请求
    * @param httpURL 发送请求的地址
    * @param jesssionId 会话Id
    * @return
    * @throws Exception
    */
   public static void sendHttpRequest(String httpURL, String jesssionId) throws Exception {
      //建立URL连接对象
      URL url = new URL(httpURL);
      //创建连接
      HttpURLConnection conn = (HttpURLConnection) url.openConnection();
      //设置请求的方式(需要是大写的)
      conn.setRequestMethod("POST");
      //设置需要输出
      conn.setDoOutput(true);
      conn.addRequestProperty("Cookie","JSESSIONID="+jesssionId);
      //发送请求到服务器
      conn.connect();
      conn.getInputStream();
      conn.disconnect();
   }

模拟浏览器的请求

   /**
 * 模拟浏览器的请求
 * @param url发送请求的地址
 * @param body请求参数
 * @return
 * @throws Exception
 */
    public static String sendHttpPost(String url, String body) throws Exception {
        CloseableHttpClient httpClient = HttpClients.createDefault();
        HttpPost httpPost = new HttpPost(url);
         httpPost.addHeader("Content-Type", "application/json;charset=UTF-8");
        httpPost.setHeader("Accept", "application/json");
         httpPost.setEntity(new StringEntity(body, Charsets.UTF_8));
         CloseableHttpResponse response = httpClient.execute(httpPost);
         System.out.println(response.getStatusLine().getStatusCode() + "
");
         HttpEntity entity = response.getEntity();
         String responseContent = EntityUtils.toString(entity, "UTF-8");
         response.close();
         httpClient.close();
         return responseContent;
     }
}


    @GetMapping
    public void getTestPostParam(){
        try {
            String url ="http://112.27.114.246:8041/api/Szgjj/GjjLpxx";
            Map<String ,String > map = new HashMap<>();
            map.put("lp","大成西苑");
            map.put( "kfs", "金隅");
            map.put("zl", "包河区");
            String s =  HttpUtil.sendHttpPost(url,JSONObject.toJSONString(map));
            System.out.println(s);
        }catch (Exception e){
            e.printStackTrace();
        }
    }
原文地址:https://www.cnblogs.com/fangh816/p/13295704.html