首页 > 编程语言 >java对接webservice服务实现推送

java对接webservice服务实现推送

时间:2022-12-05 17:38:45浏览次数:38  
标签:推送 java webservice StringRequestEntity error logger null String


【背景】

    前不久接到一个任务需要将我们平台的内容推送到第三方的一个webService服务中,我们平台接口使用java来做的,所以需要通过java调用webService服务实现推送效果,不多说直接上干货。

【过程】

第一步:查看要推送过去的webservice服务的接口:

java对接webservice服务实现推送_学习

第二步:可以先通过SoapUI 5.2.1或者其它工具进行测试验证(切记需要输入对应的参数),如下图:

java对接webservice服务实现推送_推送_02

第三步:通过java代码拼接参数(拼接为类似于SoapUI参数的方式,的一个String字符串,切记将对应参数放入其中哦),如下图:

java对接webservice服务实现推送_webService_03

第四步:通过http请求调用,但是必须用下面的方法进行调用(其中下面的StringRequestEntity对应的第二个参数contentType类型需要和图一中的数据第三行,content-Type类型对应才可以调用通),如下图:

java对接webservice服务实现推送_推送_04

第五步:进行测试验证工作

【代码】

   只提供一下http请求方法对应的代码,至于调用的时候传入的拼接参数的方法读者可以自己写一下。

public static String sendPostForWebService(String requestUrl, String paramStr) {
if (requestUrl == null || "".equals(requestUrl)) {
logger.error("请求地址为null");
return null;
}
if (null == paramStr) {
logger.error("请求参数为null");
return null;
}

StringRequestEntity requestEntity = null;
try {
// requestEntity = new StringRequestEntity(paramStr, "application/soap+xml",CODE);
requestEntity = new StringRequestEntity(paramStr, "text/xml",CODE);
} catch (UnsupportedEncodingException e) {
logger.error(e.getMessage());
}
PostMethod postMethod = new PostMethod(requestUrl);
postMethod.setRequestEntity(requestEntity);
HttpClient httpClient = new HttpClient();
/* 发送请求,并获取响应对象 */
int statusCode = -1;
try {
statusCode = httpClient.executeMethod(postMethod);
} catch (HttpException e) {
logger.error(e.getMessage());
} catch (IOException e) {
logger.error(e.getMessage());
}

if (statusCode != HttpStatus.SC_OK) {
logger.error("post请求失败: " + postMethod.getStatusLine());
return null;
}
String resultJson = "";
try {
InputStream io = postMethod.getResponseBodyAsStream();
resultJson = inputStream2String(io);
logger.info("请求结果 : " + resultJson);
} catch (IOException e) {
logger.error("获取ResponseBody时出错:" + e.getMessage());
}
return resultJson;
}

【遇到的困难】

    1.开始不知道如何进行推送,也不知道如何验证,所以查询过后找到了SoapUI 5.2.1这个工具,工具读者朋友直接百度吧!

    2.通过java调用StringRequestEntity中的第二个参数也就是请求的contentType不对应一直调用不通

【总结】

    开始做的时候一头雾水,各种查询,各种尝试,最终解决完成之后发现是如此简单,欢迎读者朋友交流沟通。

标签:推送,java,webservice,StringRequestEntity,error,logger,null,String
From: https://blog.51cto.com/u_14471711/5913087

相关文章

  • JAVA解决并发问题
    解决并发问题 解决可见性,有序性,原子性原子性 Java内存模型只保证了基本读取和赋值是原子性操作,如果要实现更大范围操作的原子性,可以通过synchronized和Lock来实现。......
  • [笔记]java分析内存
    分析内存1.jmap_dump2.下载地址https://www.ej-technologies.com/download/jprofiler/files2.1JVM启动参数-XX:+HeapDumpOnOutOfMemoryError-XX:HeapDumpPath=D:\heap......
  • 【转载】详解mysql插入数据后返回自增ID的七种方法_java
    引言mysql和oracle插入的时候有一个很大的区别是:oracle支持序列做id;mysql本身有一个列可以做自增长字段。mysql在插入一条数据后,如何能获得到这个自增id的......
  • Java学习系列:package-info.java的作用
    场景学习​​spring-kafka​​​开源源码的时候,发现每个目录都有一个​​package-info.java​​文件,查找其用法,并整理出来。环境软件版本spring-boot2.1.8.RELEASEspring-ka......
  • 【基础知识】——java集合
    一、背景最近在刷力扣算法题的过程中对于java集合的定义及使用想要达到更加精准的程度,于是有了本次的总结二、目标宏观总结:绘制java集合类图微观:写每个集合常用的代码实现......
  • 前端知识之JS(javascirpt)
    目录JS简介JS基础1.注释语法2.引入JS的做种方式3.结束符号变量与常量基本数据类型1.数字类型(Number)2.字符类型(string)3.布尔类型(Boolean)4.null和underfined5.对象(obj......
  • java通过poi导出excel和pdf
    【背景】  由于各户的需求,所以需要增加导出excel这个功能,其实大部分系统都需要这个导出功能的,所以这里也就不详细说明具体导出的背景了O(∩_∩)O~  干完导出exce......
  • webservice接口调用OA方法
    【背景】  最近一直在做这样一个需求,在OA中写一个webservice接口,通过调用OA中更新的方法来同步上级主管,我们公司的OA系统是买的产品,一无所知的我就这样开启了无悔......
  • java并发数据结构之CopyOnWriteArrayList
    CopyOnWriteArrayList是一个线程安全的List实现,其在对对象进行读操作时,由于对象没有发生改变,因此不需要加锁,反之在对象进行增删等修改操作时,它会先复制一个对象副本,然后对......
  • jdk自带的javaVisualVM检测tomcat
    背景:在项目运行的过程中想了解一下tomcat的执行性能情况,下面以jdk自带的javaVisualVm为例进行配置检测1.在我本地(windows系统)找到jdk中的bin目录,找到jvisualvm.exe双击......