IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> Http调用第三方接口的两种方式实例《超详细!!!》*** -> 正文阅读

[网络协议]Http调用第三方接口的两种方式实例《超详细!!!》***

Http调用第三方接口的两种方式《超详细!!!》*

最近在公司做一些调用第三方接口的工作,查阅了一部分的资料和向前辈以及朋友请教,完成了第三方接口的调用,其实主要是通过第三方提供的文档,完成完成签名档的设计,连接请求、以及响应数据,这里提供两种方式(超详细!!)

*#######最重要的是可以直接使用!!!!########

两种方式都可以直接使用,代码如下

封装HTTP链接请求(有参的POST请求)

public static String wlwHttpURLConnection(String url, JSONObject data, String appid, String timestamp ,String sign) {

        StringBuffer sb = new StringBuffer();
        try {
            URL realUrl = new URL(url);

            HttpURLConnection connection = (HttpURLConnection) realUrl.openConnection();
            connection.setDoOutput(true);
            connection.setDoInput(true);
            
            //请求方式为post
            connection.setRequestMethod("POST");
            connection.setUseCaches(false);
            connection.setInstanceFollowRedirects(true);//自动处理重定向
			
			 // 增加请求头 start
            connection.setRequestProperty("Content-Type", "application/json;charset=utf-8");
            connection.setRequestProperty("appid", appid);
            connection.setRequestProperty("timestamp", timestamp);
            connection.setRequestProperty("sign" , sign)
            // 增加请求头 end
            connection.connect();**

            DataOutputStream dataout = new DataOutputStream(connection.getOutputStream());// 创建输入输出流,用于往连接里面输出携带的参数
            String query = data.toString();

            dataout.write(query.getBytes("UTF-8"));
            dataout.flush();
            dataout.close();
            BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream(), "UTF-8"));
            String lines;
            while ((lines = reader.readLine()) != null) {
                lines = new String(lines.getBytes(), "utf-8");
                sb.append(lines);
            }
            reader.close();
            connection.disconnect();
        } catch (Exception e) {
            e.printStackTrace();

        }

        return sb.toString();
    }
}

以上代码需要修改的部分就是我隔开的那部分添加请求的部分,也就是你文档中的这一部分:
在这里插入图片描述
请求头以参数的形式传入从Controller层传入,新手也可以理解为调用该方法的时候传入。调用代码如下:


@RequestMapping("/自己的访问接口")
    public String setDormImei(@RequestBody String body, @RequestParam(value = "Id", required = false) String Id) {
        // 获得请求body
        JSONObject reqBody = new JSONObject();
        // 计算sign值
        String sign = (这里就是计算签名的方法,每一个方法都是不一样的,但是会在文档中说明,按照文档的方式计算,)
		
		 //调用Http接口(传入请求头的参数以及自己调用的ur,以及一下密钥之类的l)
        String res = Utils.wlwHttpURLConnection("http://传入自己调用的第三方地址//", appId, timestamp , sign);
        System.out.println("请求结果: " + res);
		
		//需要返回给前端,return返回值
		return null;

以上就是封装Http调用第三方接口的全部流程,可直接使用更换代码中标注的部分就好

第二种方式使用hutool的工具类 HttpUtil实现第三方的调用

这个就比较简单了
首先加入依赖:

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

使用工具类HttpUtil实现接口调用,代码如下:

    public static String wlwHttpURLConnection(String url, JSONObject reqBody, String appid, String appSecret, String sign) {
        // 获得http请求
        String httpRes= HttpRequest.post(url)
                .body(reqBody.toString())
                .header("Content-Type", "application/json;charset=utf-8")
                .header("appid",appid)
                .header("timestamp",timestamp)
                .header("sign",sign)
                .execute().body();
       return httpRes;
    }
}

在Controller类中调用

@RequestMapping("/自己的访问接口")
    public String setDormImei(@RequestBody String body, @RequestParam(value = "Id", required = false) String Id) {
        JSONObject reqBody = new JSONObject();
        // 计算sign值
        String sign = (这里就是计算签名的方法,每一个方法都是不一样的,但是会在文档中说明,按照文档的方式计算,没有的可以忽略)
		
		 //调用Http接口(传入请求头的参数以及自己调用的ur,以及一下密钥之类的l)
        String res = Utils.wlwHttpURLConnection("http://传入自己调用的第三方地址//", appId, timestamp , sign);
        System.out.println("请求结果: " + res);
		
		//需要返回给前端,return返回值
		return null

以上就是所有的http第三方接口的调用方式总结,希望对各位有帮助,喜欢的话点一下关注,以后会发一下刚刚步入工作会遇到的一些问题的解决以及总结。

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2021-10-15 12:07:43  更:2021-10-15 12:08:04 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年6日历 -2024/6/29 20:17:42-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码