SoapUI调用webservice接口,http+post方式模仿soapui调用webservice接口

` SoapUI调用webservice接口,http+post方式模仿soapui调用webservice接口

项目上调用一个第三方公司提的的webservice短信接口,使用了以下几种接口调用技术都不行

  1. 使用PB自带的 Web Service Proxy Wizard 输入wsdl地址后加载不出方法名
  2. 使用java xfire客户端调用报错
  3. 使用java jax-ws 生成客户端报错(jax-ws虽然需要生成很多调用客户端,会生成很多class引入到项目,但是之前碰到的绝大多数webservice jax-ws都能解析生成调用客户端的)

soapui调用测试

soapui新建 new soap project 输入wsdl地址自动加载接口已发布方法,
输入接口调用参数,接口调用成功后返回发送的短信ID
SoapUI调用webservice接口,http+post方式模仿soapui调用webservice接口_第1张图片

现在已知soapui可以调用接口,其他的方式目前都测试不行,但是只要soapui可以调用,我们可以模仿soapui,把soapui的参数放到HTTP+POST请求中调用,soapui调用webservice接口就是通过http+post调用的

http+post调用webservice接口,查看post调用地址,入参等

接口调用成功后切换到request1的Raw 窗口

  1. POST请求的地址在上方
  2. content-type 为Content-Type: text/xml;charset=UTF-8 也写明
  3. 方法入参,
    soapenv:Header/ …

SoapUI调用webservice接口,http+post方式模仿soapui调用webservice接口_第2张图片

使用Postman测试

上面已经知道了使用post模仿soapui调用必要的请求地址,content-type,以及body参数,使用postman输入这些数据测试

soapui设置的 content-type:text/xml;charset=UTF-8
postman中我设置 content-type:text/xml;charset=UTF-8或者
content-type:text/plain
content-type:application/json
都可以调用的。

SoapUI调用webservice接口,http+post方式模仿soapui调用webservice接口_第3张图片

java httpclient调用webservice接口

postman工具中 post请求已经可以了就好办了,使用httpclient封装一个http+post的工具类即可

package com.bsoft.tjwsyy.myutils;
import org.apache.http.HttpEntity;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.config.RequestConfig;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.clie

你可能感兴趣的:(java,http,postman,java,soapui)