JAVA http请求工具类http-request

作者: liangzzz | 来源:发表于2017-07-18 17:14 被阅读1554次

    前言

    在我们日常工作中,我们需要经常和第三方接口进行交互通信,很多时候我们都是使用http协议进行交互,java原生自带对http的支持(java.net.*),但是使用起来不太方便,除此之外,用的最多的就是apache httpclient工具包。但是个人使用这么久而言,感觉不管是原生的抑或是httpclient,使用起来都不太顺手,也略显复杂

    在此推荐一个简单易用的类库http-request

    **github地址:https://github.com/kevinsawicki/http-request **

    maven引入

    <dependency>
      <groupId>com.github.kevinsawicki</groupId>
      <artifactId>http-request</artifactId>
      <version>5.6</version>
    </dependency>
    

    例子

    发送一个Get请求获取响应报文
    String response = HttpRequest.get("http://www.baidu.com").body();
    System.out.println("Response was: "+response);
    
    发送一个带查询参数的Get请求获取响应报文
    写法1:
    
    HttpRequest request = HttpRequest.get("http://www.baidu.com",true,'q',"baseball gloves","size",100);
    System.out.println(request.toString());// GET http://www.baidu.com?q=baseball%20gloves&size=100
    
    写法2:
    
    Map data = new HashMap();
    data.put("q", "baseball gloves");
    data.put("size", "100");
    String resp =HttpRequest.get("http://www.baidu.com")form(data).body();
    System.out.println("---------------response parameter:" + resp);
    
    同理,发送Post请求只需把get方法换成Post即可。
    
    发送请求上传附件
    HttpRequest request=HttpRequest.post("http://google.com");
    request.part("status[body]","Making a multipart request");
    request.part("status[image]",newFile("/home/kevin/Pictures/ide.png"));
    if(request.ok()){
        System.out.println("Status was updated");
    }
    

    常用http请求配置

    HttpRequest request = HttpRequest.get("https://google.com");
    //信任所有证书
    request.trustAllCerts();
    //信任所有地址
    request.trustAllHosts();
    //设置请求超时时间
    request.connectTimeout(60000);
    //设置读取超时时间
    request.readTimeout(60000);
    
    以上设置支持Builder模式
    
    String resp = HttpRequest.post("http://www.baidu.com").trustAllCerts().trustAllHosts()
    .form(data)
    .connectTimeout(60000)
    .readTimeout(60000)
    .body();
    
    配置http代理
    HttpRequest request = HttpRequest.get("https://google.com");
    //Configure proxy
    request.useProxy("localhost", 8080);
    //Optional proxy basic authentication
    request.proxyBasic("username", "p4ssw0rd");
    

    总结

    此工具类方便易用,没有任何依赖库,源代码也只有一个类HttpRequest,简洁明了,而且支持Builder模式链式调用。有兴趣的同学可以尝试使用,用过都说好,更多用法请自行查看官网例子。

    相关文章

      网友评论

        本文标题:JAVA http请求工具类http-request

        本文链接:https://www.haomeiwen.com/subject/zsuhkxtx.html