前言:该文章主要是总结我在实际工作中遇到的问题,在调取第三方系统的时候出现的问题,算自己的总结。各位博友如果有什么建议或意见欢迎留言指正。

  1. 先将准备传入参数
  2. 再与第三方系统建立连接
  3. 再第三方系统处理后给你返回需要的信息

调用第三方的系统的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 调用第三方系统时的连接代码-记录的更多相关文章

  1. Java调用第三方http接口的方式

    1. 概述 在实际开发过程中,我们经常需要调用对方提供的接口或测试自己写的接口是否合适.很多项目都会封装规定好本身项目的接口规范,所以大多数需要去调用对方提供的接口或第三方接口(短信.天气等). 在J ...

  2. Java调用第三方dll文件的使用方法 System.load()或System.loadLibrary()

    Java调用第三方dll文件的使用方法 public class OtherAdapter { static { //System.loadLibrary("Connector") ...

  3. Java调用第三方接口示范

    在项目开发中经常会遇到调用第三方接口的情况,比如说调用第三方的天气预报接口. 使用流程[1]准备工作:在项目的工具包下导入HttpClientUtil这个工具类,或者也可以使用Spring框架的res ...

  4. java调用第三方的webservice应用实例

    互联网上面有很多的免费webService服务,我们可以调用这些免费的WebService服务,将一些其他网站的内容信息集成到我们的Web应用中显示. 一些常用的webservice网站的链接地址: ...

  5. java调用第三方的webservice应用实例【转载】

    互联网上面有很多的免费webService服务,我们可以调用这些免费的WebService服务,将一些其他网站的内容信息集成到我们的Web应用中显示. 一些常用的webservice网站的链接地址: ...

  6. 使用SAP open connector调用第三方系统的API

    我们把hubspot这个SaaS CRM作为第三方系统,首先登录hubspot,创建一个新的API key: 把创建的key拷贝到剪切板里: 然后登录SAP Cloud for Customer上的o ...

  7. 调用第三方库时需注意MD/MT的链接编译方式(遇到的坑记录)

    MD与/MT编译 1./MD是动态库链接方式编译 (DEBUG版本是/MDd) 2./MT是静态库链接方式编译 (DEBUG版本是/MTd) 编译器不会检查到的问题 我今天遇到的记录下来 当你调用第三 ...

  8. java 使用CXF将wsdl文件生成客户端代码命令java调用第三方的webservice应用实例

    1.先下载cxf包https://download.csdn.net/download/suizhikuo/108112362.解压缩包,通过cmd命令进入到bin目录下(cd cxf\bin的路径) ...

  9. wsdl 生成 java 代码 java 使用CXF将wsdl文件生成客户端代码命令java调用第三方的webservice应用实例 推荐使用, 并且设置了 utf8

    推荐使用, 并且设置了 utf8 wsdl2java -p cn.smborderservice  -encoding utf-8 -d f:\logink\src -all -autoNameRes ...

随机推荐

  1. HBase 相关API操练(一):Shell操作

    HBase 为用户提供了一个非常方便的使用方式, 我们称之为“HBase Shell”. HBase Shell 提供了大多数的 HBase 命令, 通过 HBase Shell 用户可以方便地创建. ...

  2. Zookeeper问题汇总

    1. 遗留问题 a). zookeeper集群如何保证请求的均匀分布? 2. ZK概念澄清 2.1 ZK节点类型 CreateMode.PERSISTENT //持久节点,该节点客户端断开后不会删除 ...

  3. C# EF 生成1-20随机数,生成10个,不能重复 LINQ写法

    , ).Select(x => ).ToList(); foreach (var i in num) { Console.WriteLine(i); } 上面的函数碉堡天了

  4. H5移动端原生长按事件

    // 函数名longpress// 参数为: 需长按元素的id.长按之后处理函数func function longPress(id, func,timeout=500) { var timeOutE ...

  5. webpack.config.js====引入Jquery库文件

    1. 安装 cnpm install --save jquery expose-loader 2. 在webpack.config.js中配置 Jquery库是使用的webpack的一个插件Provi ...

  6. Java算法面试题 一个顺子带一对

    打牌里面经常出现的5张牌,一个顺子带一对,给你五张牌,比如:1,2,2,2,3 或者 5,6,7,4,4 或者 2,4,3,5,5 或者 7,5,9,6,9 ,这种情况就符合一个顺子带一对,则返回 t ...

  7. rem媒体查询

    @media only screen and (min-width: 1080px), only screen and (min-device-width:1080px) { html,body { ...

  8. Oracle 11g服务详细介绍

    按照windows 7 64位 安装oracle 11g R2中的方法成功安装Oracle 11g后,共有7个服务,这七个服务的含义分别为: 1. Oracle ORCL VSS Writer Ser ...

  9. JAVA继承与使用

    说来惭愧,java学完已经两年了,开发也已经做了快一年了,现在才基本了解继承怎么用,平时都是在一个类中乱写一气.现在感觉原来学的知识真正运用起来还是具有一定的差距.希望能够先夯实基础,共勉.写一下自己 ...

  10. 【Linux/Ubuntu学习 11】git查看某个文件的修改历史

    有时候在比对代码时,看到某些改动,但不清楚这个改动的作者和原因,也不知道对应的BUG号,也就是说无从查到这些改动的具体原因了- [注]:某个文件的改动是有限次的,而且每次代码修改的提交都会有commi ...