Java调用第三方接口工具类(json、form)
1、JSON值访问
- /**
- * 调用对方接口方法
- * @param path 对方或第三方提供的路径
- * @param data 向对方或第三方发送的数据,大多数情况下给对方发送JSON数据让对方解析
- */
- public static void interfaceUtil(String path,String data) {
- try {
- URL url = new URL(path);
- //打开和url之间的连接
- HttpURLConnection conn = (HttpURLConnection) url.openConnection();
- //设置请求的方法类型
- conn.setRequestMethod("POST");
- //设置请求的内容类型
- conn.setRequestProperty("Content-Type", "application/json;charset=UTF-8");
- //设置发送数据
- conn.setDoOutput(true);
- //设置接受数据
- conn.setDoInput(true);
- //发送数据,使用输出流
- OutputStream outputStream = conn.getOutputStream();
- outputStream.write(data.getBytes("UTF-8"));
- //获取URLConnection对象对应的输入流
- InputStream is = conn.getInputStream();
- //构造一个字符流缓存
- BufferedReader br = new BufferedReader(new InputStreamReader(is));
- String str = "";
- while ((str = br.readLine()) != null) {
- System.out.println(str);
- }
- String response = byteArrayOutputStream.toString();
- System.out.println(response);
- //关闭流
- is.close();
- //断开连接,最好写上,disconnect是在底层tcp socket链接空闲时才切断。如果正在被其他线程使用就不切断。
- //固定多线程的话,如果不disconnect,链接会增多,直到收发不出信息。写上disconnect后正常一些。
- conn.disconnect();
- System.out.println("完整结束");
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
2、form表单形式提交key-value值访问
key-value值放进一个Map中
- import java.io.BufferedReader;
- import java.io.IOException;
- import java.io.InputStream;
- import java.io.InputStreamReader;
- import java.io.OutputStream;
- import java.net.HttpURLConnection;
- import java.net.URL;
- import java.util.Map;
- import java.util.Map.Entry;
- import org.apache.log4j.Logger;
- /**
- * 调用对方接口方法
- * @author wxd
- */
- public class InterfaceUtil {
- private static final Logger logger = Logger.getLogger(InterfaceUtil.class);
- private static final int REQUEST_SUCCESS = ;
- /**
- * 调用对方接口方法
- * @param path 对方或第三方提供的路径
- * @param data 向对方或第三方发送的数据,大多数情况下给对方发送JSON数据让对方解析
- */
- public static void postRequest(String path, Map<String,String> params) {
- OutputStream outputStream = null;
- InputStream is = null;
- HttpURLConnection conn = null;
- URL url = null;
- try {
- // 拼接请求参数
- StringBuffer sb = new StringBuffer();
- String sbRlt = null;
- if (params != null) {
- for (Entry<String, String> e : params.entrySet()) {
- sb.append(e.getKey());
- sb.append("=");
- sb.append(e.getValue());
- sb.append("&");
- }
- sbRlt = sb.substring(, sb.length() - );
- }
- url = new URL(path);
- //打开和url之间的连接
- conn = (HttpURLConnection) url.openConnection();
- //设置请求的方法类型
- conn.setRequestMethod("POST");
- //设置请求的内容类型
- conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded;charset=UTF-8");
- //设置发送数据
- conn.setDoOutput(true);
- //设置接受数据
- conn.setDoInput(true);
- //发送数据,使用输出流
- outputStream = conn.getOutputStream();
- outputStream.write(sbRlt.getBytes("UTF-8"));
- //获取URLConnection对象对应的输入流
- is = conn.getInputStream();
- if(conn.getResponseCode() == REQUEST_SUCCESS) {
- //构造一个字符流缓存
- BufferedReader br = new BufferedReader(new InputStreamReader(is));
- String str = "";
- while ((str = br.readLine()) != null) {
- logger.info(str);
- System.out.println(str);
- }
- }else {
- logger.error("访问失败");
- System.out.println("访问失败");
- }
- } catch (Exception e) {
- logger.error("访问失败");
- e.printStackTrace();
- } finally {
- if(is != null) {
- try {
- is.close();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- if(outputStream != null) {
- try {
- outputStream.close();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- if(conn != null) {
- conn.disconnect();
- }
- }
- }
- }
Java调用第三方接口工具类(json、form)的更多相关文章
- Utils--前台调用后台接口工具类
Utils--前台调用后台接口工具类 package com.taotao.manage.httpclient; import java.io.IOException; import java.net ...
- Java调用第三方接口示范
在项目开发中经常会遇到调用第三方接口的情况,比如说调用第三方的天气预报接口. 使用流程[1]准备工作:在项目的工具包下导入HttpClientUtil这个工具类,或者也可以使用Spring框架的res ...
- Java调用Python脚本工具类
[本文出自天外归云的博客园] 在网上查了很多方法都不成功,在google上搜到一篇文章,做了一些小修改,能够处理中文输出.提取一个运行python脚本的Java工具类如下: package com.a ...
- Java模拟http请求调用远程接口工具类
package ln; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamRea ...
- 【Java】Java调用第三方接口
Get请求与Http请求 https://www.w3school.com.cn/tags/html_ref_httpmethods.asp HttpClient HTTP 协议可能是现在 Inter ...
- java调用第三方接口(转载)
在很多时候有些别人做过的东西直接拿来用就好了,例如:身份证的信息.某个地区的天气.电话归属地等等. 代码 //import com.alibaba.fastjson.JSONObject; impor ...
- 带SSL证书的httpclient 远程接口工具类
package com.iups.wx.util; import java.io.IOException; import java.io.UnsupportedEncodingException; i ...
- java springboot调用第三方接口 借助hutoool工具类 爬坑
楼主是个后端小白一枚,之前没接触过后端,只学了java基本语法,还是在学校老师教的,学的很浅,什么ssh.ssm框架都没有学,最近在自学spring boot,看书学也看不是很懂,就在b站上看教学视频 ...
- Java 调用http接口(基于OkHttp的Http工具类方法示例)
目录 Java 调用http接口(基于OkHttp的Http工具类方法示例) OkHttp3 MAVEN依赖 Http get操作示例 Http Post操作示例 Http 超时控制 工具类示例 Ja ...
随机推荐
- Oracle中的位图索引和函数索引
位图索引 同样的,先说是什么,再说为什么. 上篇我们说过BTREE索引是将数据表的索引列和行号排序后以树状形式存在磁盘中.那位图索引是什么样的呢? 现有如下日志表,有操作类型字段op_type,该字段 ...
- 如何使用mongodb(建立原型,连接数据库)
前两天看了一个朋友做的mongodb数据库,他是自己从某网络大学试听课学的,从可读性和模块区分方面做的比较差,所以写下此文,以作交流. 首先是创建一个modules文件夹,这里面用来存放mongodb ...
- 给GRUB添加新的项目
安装了win10,然后又安装了manjaro,最后又安装了Ubuntu.开机默认就是进入的Ubuntu的grub,然而我比较喜欢manjaro的grub主题.在bios中设置manjaro的引导为默认 ...
- P4630 [APIO2018] Duathlon 铁人两项
思路 圆方树,一个点双中的所有点都可以被经过,所以给圆点赋值-1,方点赋值为圆点个数,统计圆点两两之间的路径权值和即可 代码 #include <cstdio> #include < ...
- 基于配置文件的Spring注入
基于配置文件的Spring注入 1.依赖注入的概述 依赖注入指的是通过Spring配置文件的方式创建对象时,直接通过配置的方式将数据注入到该对象的标量类型属性,并从Spring容器中获取指定对象注入到 ...
- lua相关的小知识
lua的特性 1. 轻量级:一标准的C语言编写原发开放,编译后仅仅100K,占用内存小: 2. 扩展性:Lua提供了非常已于使用的扩展口和机制: 3. 支持面向过程编程和函数式编程 lua的数据类型 ...
- 给video添加自定义进度条
思路: 1.进度条,首先要知道视频的总长度,和视频的当前进度,与其对应的便是进度条的总长度和当前的长度,两者比值相等 2.获取视频的总长度(单位是秒),获取当前进度 3.要实现的功能,首先是进度条根据 ...
- (6)tcp-socket
(1)client端口: import socket# 产生一个socket对象sk = socket.socket()# 建立连接sk.connect( ("127.0.0.1" ...
- 【杂】暴力出奇迹,lz水数据
做了个填涂颜色的题qwq 洛谷上的qwq,然后我就把这道题水过去了qwq(显然这是不对的,我们不能水数据qwq)当然我本身是80分的qwq end-
- 微信小程序分享及信息追踪
我就是个搬用工—来源:https://www.jianshu.com/p/87a75ec2fd53 小程序分享群及信息追踪 需求 页面分享 小程序页面分享链接增加source参数,值为用户ID加密 ...