• Java版Http请求post和get两种调用实现


    在实际项目中常涉及到相互调用,对于http接口的调用,需要经过建立连接,拼接参数,调用等步骤,记录下来,方便查看。

    第一步、引入jar包

    pom中引入apache的httpclient

    <dependency>
       <groupId>commons-httpclientgroupId>
       <artifactId>commons-httpclientartifactId>
       <version>3.1version>
    dependency>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    第二步、实现逻辑

    http调用分为post和get两种方式,两者的流程一致,主要区别在于创建自己的对象。

    (1)post调用方式

    1)创建HttpClient实例对象
    2)httpClient连接主机服务器
    3)创建post请求方法实例对象
    4)设置post请求超时时间
    5)创建参数对象,并进行赋值操作;
    6)执行post方法
    7)获取返回结果,并释放连接

    import java.io.IOException;
    import org.apache.commons.httpclient.HttpClient;
    import org.apache.commons.httpclient.HttpException;
    import org.apache.commons.httpclient.methods.PostMethod;
    import org.apache.commons.httpclient.params.HttpClientParams;
    import org.apache.commons.httpclient.params.HttpMethodParams;
    
    public class HttpClientUtil {
        public static String sendPost(String urlParam) throws HttpException, IOException {
            // 创建实例对象
            HttpClient httpClient = new HttpClient();
            // 设置httpClient连接主机服务器超时时间:15000毫秒
            httpClient.getHttpConnectionManager().getParams().setConnectionTimeout(15000);
            // 创建post请求方法实例对象
            PostMethod postMethod = new PostMethod(urlParam);
            // 设置post请求超时时间
            postMethod.getParams().setParameter(HttpMethodParams.SO_TIMEOUT, 60000);
    		// 请求头
            postMethod.addRequestHeader("Content-Type", "application/json");
    		// 创建参数对象
            HttpClientParams params = new HttpClientParams();
            params.setParameter("user_name", "Tom");
            params.setParameter("age", 20);
            httpClient.setParams(params);
            // 执行方法
            httpClient.executeMethod(postMethod);
    		// 获取返回结果
            String result = postMethod.getResponseBodyAsString();
            // 释放连接
            postMethod.releaseConnection();
            return result;
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    (2)get调用方式

    1)创建HttpClient实例对象
    2)httpClient连接主机服务器
    3)创建get请求方法实例对象
    4)设置post请求超时时间
    5)创建参数对象,并进行赋值操作;
    6)执行get方法
    7)获取返回结果,并释放连接

    import java.io.IOException;
    import org.apache.commons.httpclient.HttpClient;
    import org.apache.commons.httpclient.HttpException;
    import org.apache.commons.httpclient.methods.GetMethod;
    import org.apache.commons.httpclient.params.HttpClientParams;
    import org.apache.commons.httpclient.params.HttpMethodParams;
    public static String sendGet(String urlParam) throws HttpException, IOException {
        // 创建httpClient实例对象
        HttpClient httpClient = new HttpClient();
        // 设置httpClient连接主机服务器超时时间:15000毫秒
        httpClient.getHttpConnectionManager().getParams().setConnectionTimeout(15000);
        // 创建GET请求方法实例对象
        GetMethod getMethod = new GetMethod(urlParam);
        // 设置post请求超时时间
        getMethod.getParams().setParameter(HttpMethodParams.SO_TIMEOUT, 60000);
        getMethod.addRequestHeader("Content-Type", "application/json");
    	// 创建参数对象
        HttpClientParams params = new HttpClientParams();
        params.setParameter("user_name", "Tom");
        params.setParameter("age", 20);
        httpClient.setParams(params);
        // 执行方法
        httpClient.executeMethod(getMethod);
    	// 获取返回结果
        String result = getMethod.getResponseBodyAsString();
        // 释放连接
        getMethod.releaseConnection();
        return result;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29

    测试调用

    public static void main(String[] args) throws HttpException, IOException {
       String post_url ="http://192.168.0.0:9090/test/post_load";
       // 调用post方法
       System.out.println(sendPost(post_url));
       String get_url ="http://192.168.0.0:9090/test/get_load";
       // 调用get方法
       System.out.println(sendGet(get_url));
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    以上就是http的两种调用方式的实现。

  • 相关阅读:
    LINUX之进程管理
    python基础语法快速复习
    Python线程
    迟迟没学会grid,是因为你没理解flex
    kubernetes之镜像拉取策略ImagePullSecrets;
    WPF绘图(路径)
    MongoDB 6.1 及以上版本使用配置文件的方式启动报错 Unrecognized option: storage.journal.enabled
    宝塔重装注意事项
    Linux项目自动化构建工具--make&Makefile
    卡尔曼家族从零解剖-(06) 一维卡尔曼滤波编程(c++)实践、透彻理解公式结果
  • 原文地址:https://blog.csdn.net/u012190388/article/details/133961766