记录一次webservice接口访问服务端一般会给个以http://xxx/services.asmx。

以前都是wsdl做服务端,采用idea自带的工具生成客户端或者用wsdl2java工具生成。

从网上找了好多方法,最后终于成功了。

服务端的URL:

asmx的请求与响应代码:

<!--请求-->
POST /webService/services/webServiceImplService.asmx HTTP/1.1
Host: 172.16.1.20
Content-Type: text/xml; charset=utf-8
Content-Length: length
SOAPAction: "http://webService/services/webServiceImplService/SendInfo"<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><soap:Body><SendInfo xmlns="http://webService/services/webServiceImplService"><Data>string</Data></SendInfo></soap:Body>
</soap:Envelope>
<!--响应-->
HTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8
Content-Length: length<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><soap:Body><SendInfoResponse xmlns="http://webService/services/webServiceImplService"><SendInfoResult>string</SendInfoResult></SendInfoResponse></soap:Body>
</soap:Envelope>

方法一

asmx也可以用wsdl2java工具生成。就在http://xxx/services.asmx后加?wsdl即可。生成方式可百度,有很多。如果这么简单我就不会写这篇文章了/哭

我这个服务端地址里面包含了很多方法。其中有参数是重复的,导致用wsdl2java工具生成时一直报某某字段重复。我从网上找了个asmx文件是可以用wsdl2java生成的。所以这个方法是没法用的。

方法二

直接使用org.apache.axis.client.ServiceCall。代码如下:

public static void main(String[] args) throws Exception {String url = "http://ip:port/webService/services/webServiceImplService.asmx";//这里有个坑,一定要注意最后是否有反斜线!!!String namespace = "http://webService/services/webServiceImplService";//action路径(方法名)String actionUri = "SendInfo";//方法名String op = "SendInfo";Service service = new Service();Call call = (Call) service.createCall();call.setTargetEndpointAddress(new URL(url));call.setUseSOAPAction(true);// 在创建QName对象时,QName类的构造方法的第一个参数表示WSDL文件的命名空间名,也就是<wsdl:definitions>元素的targetNamespace属性值call.setSOAPActionURI(namespace +"/"+actionUri);call.setReturnType(XMLType.XSD_STRING);call.setOperationName(new QName(namespace, op)); // 设置要调用哪个方法call.addParameter(new QName(namespace,"Data"), // 设置要传递的参数(形参)XMLType.XSD_STRING, ParameterMode.IN);String json = "传递的数据";Object[] params = new Object[]{json};String response = "";try {response = (String) call.invoke(params);// 调用方法并传递参数}catch (Exception e){e.printStackTrace();//输出SOAP发送的请求报文System.out.println("--SOAP Request: " +     call.getMessageContext().getRequestMessage().getSOAPPartAsString());}
}

webservice客户端asmx相关推荐

  1. 如何调用天气接口(如何解决WebService客户端引用 服务器无法处理请求。 未将对象引用设置到对象的实例)

    正常操作是: 添加服务引用 输入UPL地址,更改命名空间 确定 然后在cs文件里面引用WebServer所在的命名空间,实例化类,就可以调用其中方法 调用getWeather()方法的时候会报 服务器 ...

  2. Webservice实践(二)Webservice 客户端开发

    现在我们首先进行客户端开发的实践,从客户端实践来了解一下webservice的应用场景.比如说现在已经有一个webservice服务,提供的翻译方面的功能服务(主要是免费的webservice接口现在 ...

  3. WebService客户端添加SOAPHeader信息

    WebService客户端添加SOAPHeader信息 通过JAXBContext创建Marshaller对头信息进行解析为dom,获取WSBindingProvider,使用Headers.crea ...

  4. webservice客户端开发

    一.根据约定条件生成客户端 1.需要axis.jar包 2.调用 import org.apache.axis.client.Call; import org.apache.axis.client.S ...

  5. 如何使用soapUI模拟webservice客户端发送请求

    随着软件行业的发展,一个完成的系统已经不能使用简单的项目来完成,而是有多个项目之间相互协同工作,项目之间就需要进行即时通讯,现在比较流行的通讯方式是通过webservice服务.比较流程的webser ...

  6. 基于Axis服务端的webservice客户端实现

    之前开发webservice客户端的时候遇到一个使用Axis2开发接口的厂家,查资料把Axis1和Axis2客户端的开发方式总结如下: 基于Axis1服务端的客户端实现: /*** 使用Axis Ca ...

  7. WebService客户端开发(Axis2 1.5)

    WebService的客户端开发方式很多,如果单纯为了使用一个WebService,而不想依赖太多的框架,那么随便选择个WebService框架就可以了. 为了封装方便,代码复用,更好的性能,一般选择 ...

  8. cmd命令生成webservice_根据wsdl文件生成WebService客户端代码

    有时候在项目中,一个项目可能有好几个公司在做.系统之间难免会出现互相调用接口的现象,这时候有一种办法就是使用webService.本篇文章将介绍如何将对接系统提供的WebService接口,根据对方提 ...

  9. WebService客户端三种调用方式整理

    1 WebService基础 1.1 作用 1,       WebService是两个系统的远程调用,使两个系统进行数据交互,如应用: 天气预报服务.银行ATM取款.使用邮箱账号登录各网站等. 2, ...

最新文章

  1. 干货 | 上手机器学习,从搞懂这十大经典算法开始
  2. 通过源码分析MyBatis的缓存
  3. Java垃圾回收(GC)、找垃圾的方式、GC Root、GC停顿、引用、垃圾收集算法、收集器、GC日志、安全点、安全区域
  4. (转)微信公众平台关于fakeid和openid的解析
  5. java阿里系学习经历的小小领悟
  6. 一开机未通过输入密码登录,就出现用户名或密码错误??
  7. 为什么自由职业受追捧?
  8. 一种用于茶叶病害识别的低阶学习方法
  9. cmd命令行四种弹窗命令
  10. 矩阵 向量 线性变换 基变换
  11. golang 文件命名规则
  12. 截止失真放大电路_模拟电路-BJT晶体管及电路
  13. okGo框架的使用,下载列表显示
  14. Java实验6 --模拟物流快递系统程序设计
  15. 造轮子--MLP与EBP的实现
  16. iFixit拆Galaxy Fold发现异物易入侵机内
  17. 场景文字检测之CTPN
  18. venn diagram_Venn Diagram Python软件包:Vennfig
  19. 从原理到代码:大牛教你如何用 TensorFlow 亲手搭建一套图像识别模块 | AI 研习社
  20. 最优化理论【第二章(凸函数)作业】

热门文章

  1. 视频教程-微信公众号前后端项目视频教程-其他
  2. java字符串日期转换成数字,Java字符串到日期的转换
  3. 【难忘经典】10大街机游戏~你最怀念哪个?
  4. 征战AIOT市场,realme走心了吗?
  5. 在线压缩图片网站源码
  6. DeepPyramid:在白内障手术视频中实现金字塔视图和可变形金字塔接收的语义分割
  7. vue2的SSR改造
  8. linux后渗透痕迹清除
  9. 2022-2027年中国牙科影像设备行业发展前景及投资战略咨询报告
  10. Hack The Box,一款有意思的渗透测试平台