webservice和http请求的 客户端调用代码
来源:互联网 发布:unity3d项目实战教程 编辑:程序博客网 时间:2024/05/16 11:54
最近用到这些 整理了一下
http请求 客户端调用http请求代码:
/**
* <pre>
* 调用http服务端
* 请求的参数:平台代码、签名、请求xml
* 注:同一接口有不同版本在URL中区分,如 http://localhost:8080/test/recvPoController/v1.0/recv,其中“v1.0”即为请求版本
* </pre>
*
* @param clientConfig
* @param reqXml
* @return
* @throws Exception
*/
public String invokeHttpServer(String mscpKey, String httpUrl, String mscpCode, String reqXml) throws Exception {
logger.debug("调用市平台服务接口开始...");
//调试或者医院联调时可以将此log展开,正式使用请注释掉改行log 正式数据的数据量大
logger.debug("调用市平台服务接口请求的xml:", reqXml);
HttpPost httppost = null;
CloseableHttpResponse response = null;
try {
httppost = new HttpPost(httpUrl);
// 将请求的xml格式的字符串进行压缩
String zipReqxml = ZipUtil.zipBase64String(reqXml);
// 签名的参数传没解压前的 服务器那边的签名就不需要在进行解压处理
String sign = MD5Util.sign(reqXml, mscpKey, "utf-8");
logger.debug("调用市平台服务接口, sign: {}", sign);
// 下面的几个参数 服务器那边可以用request.getparams拿到 或者直接写到服务端请求的方法参数中
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("mscpCode", mscpCode));
params.add(new BasicNameValuePair("sign", sign));
params.add(new BasicNameValuePair("reqXml", zipReqxml));
httppost.setEntity(new UrlEncodedFormEntity(params, HTTP.UTF_8));
response = HttpClients.createDefault().execute(httppost);
String result = null;
logger.debug("调用市平台服务接口后返回的状态码:" + response.getStatusLine().getStatusCode());
if (response.getStatusLine().getStatusCode() == 200) {
result = EntityUtils.toString(response.getEntity(), HTTP.UTF_8);
}
// logger.debug("clientConfig[{}] 调用市平台服务接口响应:{}", result);
return result;
} catch (Exception e) {
logger.debug("调用http服务端接口出错", e);
throw e;
} finally {
if (response != null) {
try {
response.close();
} catch (Exception e2) {
logger.debug("关闭连接异常", e2);
}
}
if (httppost != null) {
httppost.abort(); // 结束后关闭请求
}
}
}
webservice请求 客户端调用请求代码:
private String invokeMscpService(String method, Object... args) {
logger.debug("method[{}] 调用平台服务接口开始...", method);
try {
Service service = new Service(); // 创建调用对象
Call call = (Call) service.createCall();
call.setOperationName(new QName(namespaceUri, method)); // 调用服务端的method
call.setTargetEndpointAddress(new java.net.URL(wsdlUrl));
String ret = (String) call.invoke(args);
return ret;
} catch (Exception e) {
logger.debug("调用平台服务接口出错1", e);
// return "调用平台服务接口出错";
throw new RuntimeException(e);
} finally {
logger.debug("method[{}] 调用平台服务接口结束", method);
}
}
- webservice和http请求的 客户端调用代码
- WebService调用客户端代码
- webservice客户端调用(一:客户端调用代码的生成)
- java webservice 服务器代码获取请求客户端的IP地址
- CXF开发webservice需要的最少jar包,CXF发布和调用客户端代码
- CXF开发webservice需要的最少jar包,CXF发布和调用客户端代码
- webservice的axis2客户端调用方式和xfire调用方式
- 使用axis编写客户端代码调用webservice的一些问题
- 原生java调用webservice的方法,不用生成客户端代码
- webService学习4:客户端调用服务端的代码
- java代码webservice客户端的两种调用方式
- Eclipse插件生成webservice客户端调用代码
- 调用WebService服务客户端代码编写
- 调用WebService服务客户端代码编写
- cxf webservice 生成客户端代码以及调用
- WEBSERVICE XFIRE 服务器端的创建和客户端调用
- Android下调用webservice的服务器端和客户端详解
- axis2发布和客户端调用WebService的方法
- 获取元素的高宽
- 编译OpenCV for Python的所需类库
- Android M WiFiManager函数调用追踪
- CF 245H. Queries for Number of Palindromes 区间dp
- 代码比较工具用哪款比较好
- webservice和http请求的 客户端调用代码
- setTimeout与setTimeinterval的使用
- HDU 4135 Co-prime(容斥原理 + 基础数论)
- QVTKWidget VTK 动态实时显示点移动
- Maven多模块项目构建
- JAVA中的线程池
- cordova打包web
- 海量数据处理:十道面试题与十个海量数据处理方法总结
- 数据结构实验之二叉树的建立与遍历