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 ...
随机推荐
- EECS 649 Introduction to Artificial Intelligence
EECS 649 Introduction to Artificial IntelligenceExamElectronic Blackboard Submission Due: April 24, ...
- Xml & Tomcat
文档声明: 简单声明, version : 解析这个xml的时候,使用什么版本的解析器解析 <?xml version="1.0" ?> encoding : 解析xm ...
- maven中引入oracle驱动报错Missing artifact com.oracle:ojdbc14:jar:10.2.0.4.0
转自https://blog.csdn.net/lovesomnus/article/details/49512777 在maven中央库中查找ojdbc,发现最新的版本是10.2.0.4.0,然后在 ...
- Python自动发送邮件提示:smtplib.SMTPServerDisconnected: please run connect() first
参考:http://blog.csdn.net/leven_change/article/details/66976695
- vue--transition-group
1.为什么要使用<transition-group> <transition></transition>是vue封装的过渡组件 <transition nam ...
- 使用sphinx制作接口文档并托管到readthedocs
此sphinx可不是彼sphinx,此篇是指生成文档的工具,是python下最流行的文档生成工具,python官方文档即是它生成,官方网站是http://www.sphinx-doc.org,这里是一 ...
- leecode第二百三十六题(二叉树的最近公共祖先)
/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode ...
- English trip V2 - 4. Really Wild Teacher:Maple Key:Adjectives of feeling
In this lesson you will learn how to recognize animals and describe feeling. 课上内容(Lesson) 词汇(Key Wor ...
- h5软键盘弹起 底部按钮被顶起问题解决
解决思路: 当键盘弹起时隐藏掉按钮,键盘隐藏时按钮显示 监测键盘是否弹起(浏览器页面是否发生变化) 代码: 1.定义一个底部按钮 <div class="returnbtn" ...
- C#基于LibUsbDotNet实现USB通信(一)
网上C#USB通信的资料比较少, 基本上都是基于LibUsbDotNet 和 CyUsb, 关于打印机设备的还有一个OPOS. 本篇文章基于LibUsbDotNet. 1. 下载并安装 LibUsbD ...