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 ...
随机推荐
- Storm概念学习系列之storm-starter项目(完整版)(博主推荐)
不多说,直接上干货! 这是书籍<从零开始学Storm>赵必厦 2014年出版的配套代码! storm-starter项目包含使用storm的各种各样的例子.项目托管在GitHub上面,其网 ...
- Android 中文 API (101) —— AsyncTask
一.结构 public abstract class AsyncTask extends Object java.lang.Object android.os.AsyncTask<Params, ...
- asp.net MVC 中枚举创建下拉列表?
我将尝试使用 Html.DropDownList 扩展方法,但不能找出如何使用它的枚举. 让我们说我有一个这样的枚举: public enum ItemTypes { Movie = 1, Game ...
- js中===、==、!=、!===的区别
结论 ===:先比较两个变量的类型,然后再比较值 !==:上面的值取非 ==:如果变量类型相同,比较值是否相同:类型不同,先转成相同类型,再比较值 !=:上面的值取非 代码 var num = 1; ...
- JavaScript中函数声明和函数表达式的区别
声明一个函数: var x=1; foo(); function foo() { console.log(x);//1 } myfun();//报错 定义一个函数表达式: var myfun=myfo ...
- 使用HTML5 canvas做地图(1)基础知识
之前一直想使用HTML5技术全新做一套地图API,可是苦于时间和精力,迟迟未有行动.后来下定决心,利用下班和周末做出一个大体框架出来,现在和网友分享一下自己的整体的一个思路和想法.欢迎大家提出宝贵建议 ...
- 合理设置apache的最大连接数
手头有一个网站在线人数增多,访问时很慢.初步认为是服务器资源不足了,但经反复测试,一旦连接上,不断点击同一个页面上不同的链接,都能迅速打开,这种现象就是说明apache最大连接数已经满了,新的访客只能 ...
- Java Annotation使用详解
Java Annotation是JDK5.0引入的一种注释机制.它与注释有一定区别,可以理解为代码上的特殊标记,通过这些标记我们可以在编译,类加载,运行等程序类的生命周期内被读取.执行相应的处理.通 ...
- mac上Apache修改目录浏览权限
sudo vim /etc/apache2/httpd.conf <Directory "/Library/WebServer/Documents"> # # Poss ...
- 将数据库数据显示到TreeView控件中
实现效果: 知识运用: TreeView控件中的Nodes集合的Add方法 实现代码: private void init() { treeView1.ShowLines = true; treeVi ...