zoukankan      html  css  js  c++  java
  • 接口调用post请求参数在body中

    
    package com.ynhrm.common.utils;
    
    import com.alibaba.fastjson.JSONObject;
    import lombok.Data;
    import org.apache.http.Consts;
    import org.apache.http.client.config.RequestConfig;
    import org.apache.http.client.methods.CloseableHttpResponse;
    import org.apache.http.client.methods.HttpPost;
    import org.apache.http.entity.StringEntity;
    import org.apache.http.impl.client.CloseableHttpClient;
    import org.apache.http.impl.client.DefaultHttpRequestRetryHandler;
    import org.apache.http.impl.client.HttpClientBuilder;
    import org.apache.http.impl.client.HttpClients;
    import org.apache.http.util.EntityUtils;
    import org.springframework.boot.context.properties.ConfigurationProperties;
    import org.springframework.context.annotation.Configuration;
    import org.springframework.stereotype.Component;
    
    import java.io.IOException;
    import java.util.HashMap;
    import java.util.Map;
    
    @Component
    @ConfigurationProperties("http.config")
    @Data
    public class HttpUtils {
        static String url="http://localhost:9002/system/login";
        static String mobile="13294950520";
        static String password="123456";
        /*String url;
        String mobile;
        String password;*/
        String result="";
        public  String httpPost(){
            //CloseableHttpClient实现了HttpClient接口
            CloseableHttpClient httpClient= HttpClients.createDefault();
            HttpPost httpPost=new HttpPost(url);
    
            //创建HttpClientBuilder设置属性
            HttpClientBuilder httpClientBuilder = HttpClientBuilder.create().setDefaultRequestConfig(RequestConfig.custom()
                    .setConnectionRequestTimeout(6000)
                    .setSocketTimeout(6000)
                    .setConnectTimeout(6000).build()).setRetryHandler(new DefaultHttpRequestRetryHandler(3, true));
    
            //设置请求头信息
            Map<String,String> map=new HashMap<>();
            map.put("Accept","application/json, text/plain, */*");
            map.put("Accept-Encoding","gzip, deflate");
            map.put("Accept-Language","zh-CN,zh;q=0.9");
            map.put("Connection","keep-alive");
            map.put("Content-Type","application/json;charset=UTF-8");
            map.put("User-Agent","Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.26 Safari/537.36 Core/1.63.5024.400 QQBrowser/10.0.932.400");
            for (Map.Entry<String, String> entry : map.entrySet()) {
                httpPost.setHeader(entry.getKey(), entry.getValue());
            }
    
    
            //传递参数为json数据
            JSONObject jsonObject=new JSONObject();
            jsonObject.put("mobile",mobile);
            jsonObject.put("password",password);
            //创建指定内容和编码的字符串实体类
            StringEntity entity=new StringEntity(jsonObject.toString(), Consts.UTF_8);
            //设置请求参数
            httpPost.setEntity(entity);
    
            // 创建HttpClient对象,CloseableHttpClient实例的生成器
            httpClient=httpClientBuilder.build();
    
            try {
                // 发送HttpPost请求,获取返回值
                CloseableHttpResponse response=httpClient.execute(httpPost);
                result = EntityUtils.toString(response.getEntity(), Consts.UTF_8);
            } catch (Exception e) {
                e.printStackTrace();
            }finally {
                try {
                    //释放资源
                    httpClient.close();
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
    
            return result;
        }
    
        public static void main(String[] args) {
            HttpUtils httpUtils = new HttpUtils();
            String s = httpUtils.httpPost();
            System.out.println(s);
        }
    }
    <dependency>
                <groupId>org.apache.httpcomponents</groupId>
                <artifactId>httpclient</artifactId>
                <version>4.5.2</version>
    </dependency>
  • 相关阅读:
    深度学习(十六) ReLU为什么比Sigmoid效果好
    逻辑回归和线性回归区别
    KNN理解
    词向量总结
    HTTP TCP/IP Socket
    AutoMapper控件
    Oracle数据库调优总结
    深度学习(十五) TextCNN理解
    从几张图来看看越来越难做的前端
    ES6学习笔记
  • 原文地址:https://www.cnblogs.com/yscec/p/11946642.html
Copyright © 2011-2022 走看看