zoukankan      html  css  js  c++  java
  • 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();
            }
        }
    
  • 相关阅读:
    Android 5.X新特性之RecyclerView基本解析及无限复用
    Android 网络框架之Retrofit2使用详解及从源码中解析原理
    Android 源码解析之AsyncTask
    Business Logic
    WHO AM I
    黑洞
    俄罗斯方块
    还记得八皇后的解法吗
    汝之蜜糖,吾之砒霜
    项目为什么会失败
  • 原文地址:https://www.cnblogs.com/fangh816/p/13295704.html
Copyright © 2011-2022 走看看