Java调用第三方Http接口的常用方式

1. 常用方式

①通过JDK网络类Java.net.HttpURLConnection;

②通过Apache common封装好的HttpClient;

③通过Apache封装好的CloseableHttpClient;

④通过OkHttp;

⑤通过Spring的RestTemplate;

⑥通过hutool的HttpUtil。

2.hutool的HttpUtil的实现方式( 一般spring的restTpemplate和hutool的HttpUtil使用最多,其中hutool最推荐)

       ①  导入jar包

    <dependency>
        <groupId>cn.hutool</groupId>
        <artifactId>hutool-all</artifactId>
        <version>5.4.1</version>
    </dependency>

       ②  具体使用

import cn.hutool.core.io.FileUtil;
import cn.hutool.core.util.CharsetUtil;
import cn.hutool.http.HttpUtil;

import java.util.HashMap;

public class HttpUtilToInterface {

    /**
     * get请求示例
     */
    public static void doGet() {
        // 最简单的HTTP请求,可以自动通过header等信息判断编码,不区分HTTP和HTTPS
        String result1 = HttpUtil.get("https://www.baidu.com");

        // 当无法识别页面编码的时候,可以自定义请求页面的编码
        String result2 = HttpUtil.get("https://www.baidu.com", CharsetUtil.CHARSET_UTF_8);

        //可以单独传入http参数,这样参数会自动做URL编码,拼接在URL中
        HashMap<String, Object> paramMap = new HashMap<>();
        paramMap.put("city", "北京");
        String result3 = HttpUtil.get("https://www.baidu.com", paramMap);
    }

    /**
     * post请求示例
     */
    public static void doPost() {
        //post普通请求示例
        HashMap<String, Object> paramMap = new HashMap<>();
        paramMap.put("city", "北京");
        String result= HttpUtil.post("https://www.baidu.com", paramMap);

        //文件上传示例
        HashMap<String, Object> paramMap1 = new HashMap<>();
        //文件上传只需将参数中的键指定(默认file),值设为文件对象即可,对于使用者来说,文件上传与普通表单提交并无区别
        paramMap1.put("file", FileUtil.file("D:\face.jpg"));
        String result1= HttpUtil.post("https://www.baidu.com", paramMap1);

        //下载文件(很少用)
        String fileUrl = "http://mirrors.sohu.com/centos/8.4.2105/isos/x86_64/CentOS-8.4.2105-x86_64-dvd1.iso";
        //将文件下载后保存在E盘,返回结果为下载文件大小
        long size = HttpUtil.downloadFile(fileUrl, FileUtil.file("e:/"));
        System.out.println("Download size: " + size);
    }
}

③ 还可以通过HttpRequest设置头信息和参数等

        String url1 = "https://gateway.ns820.com/i2d/sdp/api/Invoice/InvoiceInspection?                                
appkey=0fe497545a794ea09f72af3b866d50bf&timestamp=20230104113212";
        HttpRequest post = HttpUtil.createPost(url1);
        // 设置头信息
        post.header("Content-Type","text/plain");
        post.header("sign","F139288D1593318BA230B00D2EA06DE5");
        // 设置参数        
    post.body("3ppJc5WsPpOG3xsRVHga2l4wUkcHYxZcIDsXI36nGEd5NgIblyAEb42yGlp6K14u23EfBxVN9GQJkVyhASpODXc/vSQO7O22NKHUVHQnuuIXYkJ3k28GjNUb/ksu2/5Kg7bOeCmV0sL08Z5ytb4V3fi1kHRBIiLYT4mirZl0g258KV5MUXFkjjHEREbRVPQOVVHlLoRUaWbnmq4Q5oHRrL0p/2tDlGVgNQWaAjdvggzr/Sc6le7Od3v32JF2clI0NuloEmtr5nUov3rtkjTxqPfybG6FNOrn3ErOQNAj1rBPsCJrhky7s6KWwdu4WVX3IUfiphDHDPDycrlxnD55luWRP/LJOfYIf7rmFNs0KCY=");
        HttpResponse execute = post.execute();
        System.out.println(execute.body());

详情:Java调用第三方http接口的常用方式_普通网友的博客-CSDN博客_java调用http接口

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值