java对接webservice服务实现推送

【背景】

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

【过程】

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

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

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

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

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

【代码】

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

【总结】

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

对接 WebService 的过程主要分为以下几个步骤: 1. 生成客户端代码:使用 Java 提供的工具或者第三方库,可以根据 WSDL(Web Services Description Language) 文件生成客户端代码。WSDL 是用于描述 WebService 接口的 XML 文件,其中包含了接口的方法、参数和返回值等信息。 2. 创建客户端对象:根据生成的客户端代码,创建一个客户端对象。该对象可以用于调用 WebService 的方法。 3. 设置 WebService 的地址:使用客户端对象的相关方法,设置 WebService 的访问地址。通常情况下,Web Service 的地址是一个 URL。 4. 调用 WebService 方法:通过客户端对象调用 WebService 的方法。根据 WSDL 文件中的定义,传递相应的参数并获取返回值。 下面是一个简单的示例代码,演示如何使用 Java 进行 WebService 的调用: ```java // 导入相关的类 import javax.xml.namespace.QName; import javax.xml.ws.Service; import java.net.URL; public class WebServiceClient { public static void main(String[] args) { try { // 创建访问地址的 URL URL url = new URL("http://example.com/YourWebService?wsdl"); // 使用 QName 指定 WebService 的命名空间和服务的名称 QName qname = new QName("http://example.com/", "YourWebService"); // 创建 Service 对象 Service service = Service.create(url, qname); // 获取 WebService实现类 YourWebServiceInterface port = service.getPort(YourWebServiceInterface.class); // 调用 WebService 的方法 String result = port.yourWebServiceMethod("parameter"); // 打印结果 System.out.println(result); } catch (Exception e) { e.printStackTrace(); } } } ``` 在上面的代码中,需要将 "http://example.com/YourWebService?wsdl" 替换为实际的 WebService 地址,"http://example.com/" 替换为实际的命名空间,"YourWebService" 替换为实际的服务名称,"YourWebServiceInterface" 替换为实际的接口名称。同时,根据实际的 WebService 接口定义,调用相应的方法和传递参数。 以上是简单的介绍了 Java 对接 WebService 的基本步骤,具体的实现方式可能因具体的 WebService 框架和需求而有所不同。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

创业之路&下一个五年

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值