记录一次WebService.asmx的实现

  本篇文章记录一次调用Service.asmx接口实现的过程,和一些总结的知识。

  转载自:http://blog.csdn.net/ckpckp/article/details/71215527

  Web Service也叫XML Web Service WebService是一种可以接收从Internet或者Intranet上的其它系统中传递过来的请求,轻量级的独立的通讯技术。是:通过SOAP在Web上提供的软件(服务),使用WSDL文件进行(说明),并通过(UDDI)进行注册。

  XML:(Extensible Markup Language)扩展型可标记语言。面向短期的临时数据处理、面向万维网络,是Soap的基础。

  Soap:(Simple Object Access Protocol)简单对象存取协议。是XML Web Service 的通信协议。当用户通过UDDI找到你的WSDL描述文档后,他通过可以SOAP调用你建立的Web服务中的一个或多个操作。SOAP是XML文档形式的调用方法的规范,它可以支持不同的底层接口,像HTTP(S)或者SMTP。规范XML标签

  WSDL:(Web Services Description Language) WSDL 文件是一个 XML 文档,用于说明一组 SOAP 消息以及如何交换这些消息。大多数情况下由软件自动生成和使用。服务端的使用说明书

  .asmx是webservice服务程序的后缀名,ASP.NET 使用.asmx 文件来对Web Services的支持。.asmx 文件和.aspx文件一样都属于文本文件。它包含在.aspx文件之中,成为ASP.NET应用程序的一部分。

  实现代码

        //用户名--bjca的32位码
        String user = "XXXXXXX";

         //发送的信息
        String message = "helloWorld";

        //返回的状态值
        String expireTime = "60";

         //webService方法
        //获取webservice接口地址
        String url = "http:/XXXXX/Service.asmx";
        //获取域名地址,server定义的
        String soapaction = "http://tempuri.org/";
        String method = "XXXXX";
         
        Service service = new Service();
        
        Call call = (Call) service.createCall();
        call.setTargetEndpointAddress(url);
        //设置要调用的方法
        call.setOperationName(new QName(soapaction,method)); 
        //设置要返回的数据类型
        call.setReturnType(new QName(soapaction,method), String.class);
             
        call.setUseSOAPAction(true);
        
        call.setSOAPActionURI(soapaction+method);
        //设置参数

        call.addParameter(new QName(soapaction, "user"),
                org.apache.axis.encoding.XMLType.XSD_STRING,
                javax.xml.rpc.ParameterMode.IN);  
        call.addParameter(new QName(soapaction, "message"),
                org.apache.axis.encoding.XMLType.XSD_STRING,
                javax.xml.rpc.ParameterMode.IN);  
        call.addParameter(new QName(soapaction, "expireTime"),
                org.apache.axis.encoding.XMLType.XSD_INTEGER,
                javax.xml.rpc.ParameterMode.IN);   
        
        Object[] obj = {user,  message, expireTime };
        //调用方法并传递参数
        String result = (String) call.invoke(obj);
         
        System.out.println("result is:::"+result);

其中用到的Service类 文档解释https://axis.apache.org/axis/java/apiDocs/org/apache/axis/client/Service.html

代码可用

 

 

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要使用 Python 的 `requests` 库构造 SOAP 1.2 请求,请根据以下示例进行操作: ```python import requests # 构造 SOAP 请求消息 soap_message = ''' <soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:web="http://tempuri.org/"> <soap:Header/> <soap:Body> <web:cstmr_nucleic_addorder> <web:arg0>Value1</web:arg0> <web:arg1>Value2</web:arg1> </web:cstmr_nucleic_addorder> </soap:Body> </soap:Envelope> ''' # 设置请求头和请求正文 headers = { 'Content-Type': 'application/soap+xml;charset=UTF-8', 'Accept': 'application/soap+xml' } # 发送 SOAP 请求 response = requests.post('http://10.254.199.111:8089/webService/n_webService.asmx?op=cstmr_nucleic_addorder', headers=headers, data=soap_message.encode('utf-8')) # 处理响应 if response.status_code == 200: # 解析响应内容 response_data = response.content.decode('utf-8') # 处理响应数据 # ... else: print('SOAP 请求失败:', response.status_code, response.reason) ``` 在上述示例中,`soap_message` 变量包含了构造的 SOAP 1.2 请求消息。你需要根据具体的 SOAP 消息格式进行修改。 然后,我们设置了请求头 `Content-Type` 为 `application/soap+xml;charset=UTF-8`,并指定了 `Accept` 的值为 `application/soap+xml`。 最后,我们使用 `requests.post` 方法发送了 SOAP 请求,并处理了响应。 请注意,这只是一个示例,实际情况可能会有所不同。根据具体的 SOAP 服务和消息格式,你可能需要进行适当的调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值