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);//请求方式为postconnection.setRequestMethod("POST");connection.setUseCaches(false);connection.setInstanceFollowRedirects(true);//自动处理重定向// 增加请求头 startconnection.setRequestProperty("Content-Type", "application/json;charset=utf-8");connection.setRequestProperty("appid", appid);connection.setRequestProperty("timestamp", timestamp);connection.setRequestProperty("sign" , sign)// 增加请求头 endconnection.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) {// 获得请求bodyJSONObject 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第三方接口的调用方式总结,希望对各位有帮助,喜欢的话点一下关注,以后会发一下刚刚步入工作会遇到的一些问题的解决以及总结。

Http调用第三方接口的两种方式实例《超详细!!!》***相关推荐

  1. 调用第三方接口的三种方式

    调用第三方接口到三种方式 链接 Hutool 依赖 <dependency><groupId>cn.hutool</groupId><artifactId&g ...

  2. C#动态调用WCF接口,两种方式任你选。

    REFERENCE FROM : http://www.cnblogs.com/Leo_wl/p/4762784.html 写在前面 接触WCF还是它在最初诞生之处,一个分布式应用的巨作. 从开始接触 ...

  3. idea中java程序打jar包的两种方式(超详细)

    java程序打成的jar包有两种类型,一种是可直接执行的runnable jar文件,另一种是包含多个主类,运行时需要指定主类全类名的jar包,下面我们细说在idea中两种jar包的打包方法及执行ja ...

  4. cxf调用接口的几种方式_Java调用CXF WebService接口的两种方式实例

    1.静态调用 // 创建WebService客户端代理工厂 JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean(); // 判断是否抛出 ...

  5. 【转】java调用http接口的几种方式总结

    java调用http接口的几种方式总结 本文参考: https://blog.csdn.net/fightingXia/article/details/71775516 https://www.cnb ...

  6. java调用restful接口_Java调用RESTful接口的几种方式

    前端一般通过Ajax来调用,后端调用的方式还是挺多的,比如HttpURLConnection,HttpClient,Spring的RestTemplate 服务端代码如下: 服务端接口请求的URL:h ...

  7. 主程序调用动态库的两种方式,动态库调用主程序的函数

    主程序调用动态库有两种方式,即隐式调用和显式调用. 隐式调用就是共享方式,程序一开始运行就调进去.在链接时候用如下的方式链接动态库:gcc -o main main.o -L./lib -ltest( ...

  8. java的websocket_java 实现websocket的两种方式实例详解

    一.介绍 1.两种方式,一种使用tomcat的websocket实现,一种使用spring的websocket 2.tomcat的方式需要tomcat 7.x,JEE7的支持. 3.spring与we ...

  9. 批量插入数据库语句java_java相关:MyBatis批量插入数据到Oracle数据库中的两种方式(实例代码)...

    java相关:MyBatis批量插入数据到Oracle数据库中的两种方式(实例代码) 发布于 2020-7-22| 复制链接 本文通过实例代码给大家分享了MyBatis批量插入数据到Oracle数据库 ...

最新文章

  1. 5行Python代码实现图像分割
  2. 【西安交大】2020年最新深度学习目标检测方法综述
  3. Radio Button详细用法
  4. mysql 会用文件系统吗_MySQL的文件系统_MySQL
  5. java基础 Unsafe
  6. 《你的灯亮着吗》读书笔记Ⅲ
  7. python-opencv 最快的遍历颜色空间_居住空间设计的七种设计风格
  8. nginx1.10.2源码安装配置参数参考
  9. Jeecg-Boot 快速生成前后端代码
  10. 自定义QListWidget实现item被hover时改变图标样式(模仿网易云音乐选项列表)(方法二)
  11. mqtt等待来自服务器响应超时,等待来自服务器的响应时超时 (32000) at org.eclipse.paho.client.mqttv3.interna...
  12. ITIL 4和DevOps的关系?
  13. APP测试功能点总结
  14. 怎么批量修改html文件后缀,如何批量修改文件后缀名
  15. 单片机怎么通过按键控制计时器的开始和停止_《搞机作战室》机械师PX780控制中心软件使用教程...
  16. 人工智能会议等级列表
  17. 三维模型的泰森多面体离散
  18. 2018年人均寿命是多少_那是2018年
  19. 《python 程序设计》读书笔记
  20. 如何使用手机将图片改成JPG格式?教你一招解决

热门文章

  1. 样本总体方差有偏估计和无偏估计的理解
  2. Matlab Mobile手机版获取gps数据和加速度信号融合
  3. 【最优化】最优化的相关条件
  4. Java代码实现回文数
  5. iptables实现华为云服务器无公网IP上网
  6. 快速搭建APP的服务器
  7. 开关电源:选择隔离电源还是非隔离电源(转)
  8. cookie的简单介绍
  9. 求字符串中回文子串的个数(回文树详解)
  10. 《程序员的思维修炼》读书笔记(思维的重生)