java对接webservice服务实现推送

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

【背景】


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


【过程】


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


20190227214308869.png


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


20190227214308893.png


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


20190227214308933.png


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


20190227214308935.png


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


【代码】


  只提供一下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不对应一直调用不通


【总结】


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

相关文章
|
7月前
|
JSON Java 数据格式
java调用服务报错400
java调用服务报错400
202 6
java调用服务报错400
|
7月前
|
JSON Java 数据格式
java调用服务报错415 Content type ‘application/octet-stream‘ not supported
java调用服务报错415 Content type ‘application/octet-stream‘ not supported
460 6
|
9月前
|
存储 数据采集 搜索推荐
Java 大视界 -- Java 大数据在智慧文旅旅游景区游客情感分析与服务改进中的应用实践(226)
本篇文章探讨了 Java 大数据在智慧文旅景区中的创新应用,重点分析了如何通过数据采集、情感分析与可视化等技术,挖掘游客情感需求,进而优化景区服务。文章结合实际案例,展示了 Java 在数据处理与智能推荐等方面的强大能力,为文旅行业的智慧化升级提供了可行路径。
Java 大视界 -- Java 大数据在智慧文旅旅游景区游客情感分析与服务改进中的应用实践(226)
|
10月前
|
分布式计算 搜索推荐 算法
Java 大视界 -- Java 大数据在智慧养老服务需求分析与个性化服务匹配中的应用(186)
本篇文章探讨了Java大数据技术在智慧养老服务需求分析与个性化服务匹配中的应用。通过整合老年人健康数据与行为数据,结合机器学习与推荐算法,实现对老年人健康风险的预测及个性化服务推荐,提升养老服务的智能化与精准化水平,助力智慧养老高质量发展。
|
网络协议 Java Shell
java spring 项目若依框架启动失败,启动不了服务提示端口8080占用escription: Web server failed to start. Port 8080 was already in use. Action: Identify and stop the process that’s listening on port 8080 or configure this application to listen on another port-优雅草卓伊凡解决方案
java spring 项目若依框架启动失败,启动不了服务提示端口8080占用escription: Web server failed to start. Port 8080 was already in use. Action: Identify and stop the process that’s listening on port 8080 or configure this application to listen on another port-优雅草卓伊凡解决方案
1044 7
|
Java API Maven
商汤人像如何对接?Java代码如何写?
商汤人像如何对接?Java代码如何写?
592 5
|
JSON Java Apache
非常实用的Http应用框架,杜绝Java Http 接口对接繁琐编程
UniHttp 是一个声明式的 HTTP 接口对接框架,帮助开发者快速对接第三方 HTTP 接口。通过 @HttpApi 注解定义接口,使用 @GetHttpInterface 和 @PostHttpInterface 等注解配置请求方法和参数。支持自定义代理逻辑、全局请求参数、错误处理和连接池配置,提高代码的内聚性和可读性。
811 3
|
Java 数据库
基于java的汽车服务管理系统(Car Service Management System)
基于java的汽车服务管理系统(Car Service Management System)
205 0
|
Java 数据处理 开发者
Java Http 接口对接太繁琐?试试 UniHttp 框架~
【10月更文挑战第10天】在企业级项目开发中,HTTP接口对接是一项常见且重要的任务。传统的编程式HTTP客户端(如HttpClient、Okhttp)虽然功能强大,但往往需要编写大量冗长且复杂的代码,这对于项目的可维护性和可读性都是一个挑战。幸运的是,UniHttp框架的出现为这一问题提供了优雅的解决方案。
465 0