java 调用第三方系统时的连接代码-记录
前言:该文章主要是总结我在实际工作中遇到的问题,在调取第三方系统的时候出现的问题,算自己的总结。各位博友如果有什么建议或意见欢迎留言指正。
- 先将准备传入参数
- 再与第三方系统建立连接
- 再第三方系统处理后给你返回需要的信息
调用第三方的系统的url(restful风格)
http://Ip地址:端口号/casereview/api/addTCaseReview
在业务逻辑实现类中通过工具类调用第三方接口。
String postParam = “”; //传入参数
String url = “”; //第三方接口url
long timeOut = 20000; //超时时间
JSONObject response = CaseEvaluationUtil.sendPost(postParam, url, timeOut );
//可以通过读取配置文件获取第三方接口地址
private static final String EVALUATION_IP = (String) ConcurrentCache.getFieldValue(“evaluationIp”);
通过工具类进行与第三方接口连接交互。
输出的参数
下面代码中设置请求头的信息来源于Request Headers
/**
* @description 向合议庭评议系统发送post请求
* @author junbao
* @create 2017年11月13日下午3:22:56
* @version 1.0
* @param postParam
* @param url
* @return String
* @throws BusinessErrorException
*/
public static JSONObject sendPost(String postParam, String url, int timeout) throws BusinessErrorException {
JSONObject result = new JSONObject();
PrintWriter out = null;
BufferedReader in = null;
try {
if (StringUtils.isBlank(EVALUATION_IP)) {
throw new BusinessErrorException(CommonConstants.FAILURE, "EVALUATION_IP 不能为空");
}
String targetURL = "http://" + EVALUATION_IP + url;
URL resetServiceURL = new URL(targetURL);
//打开url连接
HttpURLConnection httpConnection = (HttpURLConnection) resetServiceURL.openConnection();
//设置连接请求头信息属性
httpConnection.setRequestProperty("Accept", "application/json, text/javascript, */*; q=0.01");
httpConnection.setRequestProperty("Accept-Encoding", "gzip, deflate");
httpConnection.setRequestProperty("Accept-Language", "zh-CN,zh;q=0.9");
httpConnection.setRequestProperty("Connection", "keep-alive");
httpConnection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
httpConnection.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.84 Safari/537.36");
httpConnection.setRequestProperty("X-Requested-With", "XMLHttpRequest");
//设置超时时间
httpConnection.setConnectTimeout(timeout);
httpConnection.setReadTimeout(timeout);
//设置请求方式
httpConnection.setRequestMethod("POST");
httpConnection.setDoInput(true);
httpConnection.setDoOutput(true);
//POST请求不应该使用cache
httpConnection.setUseCaches(false);
//获取url连接
httpConnection.connect();
//获取UrlConnection对象的输出流,调用httpConnection.getOutputStream的时候就会设置为POST方法
out = new PrintWriter(new OutputStreamWriter(httpConnection.getOutputStream(),"UTF-8"));
out.write(postParam);
//flush输出流的缓冲,将参数发送出去
out.flush();
//表示连接异常
if (httpConnection.getResponseCode() != 200) {
result.put("message", "数据获取异常,请联系系统管理员");
result.put("result", "ERROR");
result.put("code", null);
result.put("object", null);
return result;
}
//读取流中的内容
in = new BufferedReader(new InputStreamReader(httpConnection.getInputStream(), "UTF-8"));
String line = "";
StringBuffer bf = new StringBuffer();
while (null !=(line = in.readLine())) {
bf.append(line);
}
if (StringUtils.isNoneBlank(bf.toString())) {
JSONObject evalutionResult = JSONObject.parseObject(bf.toString());
return evalutionResult;
}
} catch (Exception e) {
logger.error("Send post Exection!",e);
result.put("message", "数据获取异常,请联系系统管理员");
result.put("result", "ERROR");
result.put("code", null);
result.put("object", null);
return result;
} finally {
// 关闭流
try {
if (null != out) {
out.close();
}
if (null != in) {
in.close();
}
} catch (Exception e) {
logger.info("Send post Exection!");
e.printStackTrace();
result.put("message", "数据获取异常,请联系系统管理员");
result.put("result", "ERROR");
result.put("code", null);
result.put("object", null);
return result;
}
}
return result;
}
java 调用第三方系统时的连接代码-记录的更多相关文章
- Java调用第三方http接口的方式
1. 概述 在实际开发过程中,我们经常需要调用对方提供的接口或测试自己写的接口是否合适.很多项目都会封装规定好本身项目的接口规范,所以大多数需要去调用对方提供的接口或第三方接口(短信.天气等). 在J ...
- Java调用第三方dll文件的使用方法 System.load()或System.loadLibrary()
Java调用第三方dll文件的使用方法 public class OtherAdapter { static { //System.loadLibrary("Connector") ...
- Java调用第三方接口示范
在项目开发中经常会遇到调用第三方接口的情况,比如说调用第三方的天气预报接口. 使用流程[1]准备工作:在项目的工具包下导入HttpClientUtil这个工具类,或者也可以使用Spring框架的res ...
- java调用第三方的webservice应用实例
互联网上面有很多的免费webService服务,我们可以调用这些免费的WebService服务,将一些其他网站的内容信息集成到我们的Web应用中显示. 一些常用的webservice网站的链接地址: ...
- java调用第三方的webservice应用实例【转载】
互联网上面有很多的免费webService服务,我们可以调用这些免费的WebService服务,将一些其他网站的内容信息集成到我们的Web应用中显示. 一些常用的webservice网站的链接地址: ...
- 使用SAP open connector调用第三方系统的API
我们把hubspot这个SaaS CRM作为第三方系统,首先登录hubspot,创建一个新的API key: 把创建的key拷贝到剪切板里: 然后登录SAP Cloud for Customer上的o ...
- 调用第三方库时需注意MD/MT的链接编译方式(遇到的坑记录)
MD与/MT编译 1./MD是动态库链接方式编译 (DEBUG版本是/MDd) 2./MT是静态库链接方式编译 (DEBUG版本是/MTd) 编译器不会检查到的问题 我今天遇到的记录下来 当你调用第三 ...
- java 使用CXF将wsdl文件生成客户端代码命令java调用第三方的webservice应用实例
1.先下载cxf包https://download.csdn.net/download/suizhikuo/108112362.解压缩包,通过cmd命令进入到bin目录下(cd cxf\bin的路径) ...
- wsdl 生成 java 代码 java 使用CXF将wsdl文件生成客户端代码命令java调用第三方的webservice应用实例 推荐使用, 并且设置了 utf8
推荐使用, 并且设置了 utf8 wsdl2java -p cn.smborderservice -encoding utf-8 -d f:\logink\src -all -autoNameRes ...
随机推荐
- 如何在数据库中导入excel文件内的数据
如何在数据库中轻松导入excel格式的文件 1)打开sql server,找到要导入数据的数据库,右键>>任务>>导入数据 2)按照图示选择要导入的excel 3)选择导入到哪 ...
- Java 类型转换String,List,Map,Array
1. JsonString转为Map String jsoNStr = "{\n" + "\t\"TestArray\": [\"1\&qu ...
- java8Stream map和flatmap的区别
map和flatmap的区别 map只是一维 1对1 的映射 而flatmap可以将一个2维的集合映射成一个一维,相当于他映射的深度比map深了一层 , 所以名称上就把map加了个flat 叫flat ...
- Day2 HTML基本标签元素
Day2 HTML基本标签元素 HTML: 超文本标记语言(HyperText Mark-up Language ) 1.作用:写网页结构 2.HTML不区分大小写,建议小写 3.文 ...
- addin修改启动路径
- stm8 全局变量定义 声明
1.ST Visual Develop 开发环境下.h文件里面不能定义变量,要把变量定义在.C文件里面,然后在.H文件里面声明即可.补充:今天突然发现还有一种情况,变量在一个.h文件里定义后,在另外的 ...
- iOS 点击左上角系统返回按钮方法
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(endBackground) name:UIAppl ...
- php使用GD库实现图片水印和缩略图——封装成类
学完了如何使用GD库来实现对图片的各种处理,那么我们可以发现,不管哪种方法,都有相似之处,如果我们把这些相似的地方和不相似的地方都封装成类,这样就可以提升代码的速度,而且节省了很多时间,废话不多说,来 ...
- IP地址与数字地址相互转换
/// <summary> /// IP地址转换成数字 /// </summary> /// <param name="addr">IP地址&l ...
- 微软高性能缓存AppFabric (一) 安装
博客原文链接:http://www.cnblogs.com/Qbit/p/6088703.html AppFabric 缓存功能的前身是VeloCity ,它是基于windows平台的一个高速内存缓存 ...