- 浏览: 235000 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (101)
- Practice (17)
- Model (15)
- Prototype (2)
- Integration (6)
- GWT (3)
- Android (16)
- Lab (6)
- Ubuntu (4)
- Data Structure(D,S) (1)
- 社会观察员 (1)
- python (14)
- redis (0)
- mysql (9)
- php (0)
- Data Structure(D (1)
- haproxy (2)
- Shell (5)
- Zabbix (1)
- CentOS (1)
- sqlplus (1)
- rlwrap (1)
- Oracle (2)
- schema (2)
- user (1)
- accredit (1)
- Delphi (2)
- nagios (1)
- nginx (0)
最新评论
-
白云飞:
兄弟能不能发一份完整的源码到我邮箱?luochengwei20 ...
【Python真的很强大】程序Log实时监控 -
myreligion:
nice job!
解决一个棘手的bug: java.lang.NoClassDefFoundError: android.os.AsyncTask -
yw9002:
你这个貌似提交的时候整个页面都会刷新。
AjaxAnyWhere+Struts的一个应用(demo/feature crew) -
fkpwolf:
这总结偏向于细节了,流水账
Android app项目和开发总结 -
crazybull:
期待详细总结~~~
Android app项目和开发总结
web services是用delphi写的,接口如下:
调用web services的代码:
再看看wsdl:
注意:
它标识了命名空间下的函数名,输入参数,输出参数.
注意
它标识了soap调用的地址.
下面附注源码(包含必须的xerces.jar,activation.jar,soap.jar,mail.jar).
interface uses InvokeRegistry, Types, XSBuiltIns; type { Invokable interfaces must derive from IInvokable } IQQService = interface(IInvokable) ['{9604D694-3FFF-4D64-9041-0EE9BE9C166C}'] { Methods of Invokable interface must not use the default } { calling convention; stdcall is recommended } function ListAccount(var QQList : Olevariant):boolean; stdcall;//列出可供申请的QQ号码 function RequestQQ():String;stdcall; //随机产生一个QQ号码 function GetQQPassword(QQ:String):String;stdcall; //取得相应QQ号码的密码 end; implementation initialization { Invokable interfaces must be registered } InvRegistry.RegisterInterface(TypeInfo(IQQService)); end.
调用web services的代码:
package sunflowerbbs.oicp.net; import java.net.URL; import java.util.Vector; import org.apache.soap.Constants; import org.apache.soap.Fault; import org.apache.soap.rpc.Call; import org.apache.soap.rpc.Parameter; import org.apache.soap.rpc.Response; public class Soap { final static String SOAPURL = "http://sunflowerbbs.oicp.net:9015/UniversalService/QQService.dll/soap/IQQService"; public String doSOAPRequest(String _strURI, String _strMethodName, String _strName, String _strValue) throws Exception { // 创建一个远程调用 Call call = new Call(); // 设置远程对象的URI call.setTargetObjectURI("urn:" + _strURI); // 设置调用的方法名 call.setMethodName(_strMethodName); // 设置编码风格 call.setEncodingStyleURI(Constants.NS_URI_SOAP_ENC); // 设置方法调用的参数 if (_strName != null) { Vector params = new Vector(); params.addElement(new Parameter(_strName, String.class, _strValue, null)); call.setParams(params); } // 发送RPC请求 Response resp = call.invoke(new URL(SOAPURL), ""); if (resp.generatedFault()) { // 远程调用出错处理 Fault fault = resp.getFault(); System.out.println("调用失败!"); System.out.println("错误代号:" + fault.getFaultCode()); System.out.println("错误信息:" + fault.getFaultString()); return "调用失败!"; } else { // 调用成功,获取返回值 Parameter result = resp.getReturnValue(); return result.getValue().toString(); } } public static void main(String[] args) { System.out.println("SOAP调用测试开始。。。"); try { Soap mysoap = new Soap(); // 调用远程的SOAP服务 String qq = mysoap.doSOAPRequest("QQServiceIntf-IQQService", "RequestQQ", null, null); String password = mysoap.doSOAPRequest("QQServiceIntf-IQQService", "GetQQPassword", "QQ", qq); System.out .println(String.format("QQ=%s,Password=%s", qq, password)); } catch (Exception e) { System.out.println("调用Soap异常!"); e.printStackTrace(); } System.out.println("SOAP调用测试结束。。。"); } }
再看看wsdl:
<?xml version="1.0" encoding="utf-8"?> <definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:xs="http://www.w3.org/2001/XMLSchema" name="IQQServiceservice" targetNamespace="http://tempuri.org/" xmlns:tns="http://tempuri.org/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"> <message name="ListAccount0Request"> <part name="QQList" type="xs:anyType"/> </message> <message name="ListAccount0Response"> <part name="QQList" type="xs:anyType"/> <part name="return" type="xs:boolean"/> </message> <message name="RequestQQ1Request"/> <message name="RequestQQ1Response"> <part name="return" type="xs:string"/> </message> <message name="GetQQPassword2Request"> <part name="QQ" type="xs:string"/> </message> <message name="GetQQPassword2Response"> <part name="return" type="xs:string"/> </message> <portType name="IQQService"> <operation name="ListAccount"> <input message="tns:ListAccount0Request"/> <output message="tns:ListAccount0Response"/> </operation> <operation name="RequestQQ"> <input message="tns:RequestQQ1Request"/> <output message="tns:RequestQQ1Response"/> </operation> <operation name="GetQQPassword"> <input message="tns:GetQQPassword2Request"/> <output message="tns:GetQQPassword2Response"/> </operation> </portType> <binding name="IQQServicebinding" type="tns:IQQService"> <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/> <operation name="ListAccount"> <soap:operation soapAction="urn:QQServiceIntf-IQQService#ListAccount" style="rpc"/> <input message="tns:ListAccount0Request"> <soap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn:QQServiceIntf-IQQService"/> </input> <output message="tns:ListAccount0Response"> <soap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn:QQServiceIntf-IQQService"/> </output> </operation> <operation name="RequestQQ"> <soap:operation soapAction="urn:QQServiceIntf-IQQService#RequestQQ" style="rpc"/> <input message="tns:RequestQQ1Request"> <soap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn:QQServiceIntf-IQQService"/> </input> <output message="tns:RequestQQ1Response"> <soap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn:QQServiceIntf-IQQService"/> </output> </operation> <operation name="GetQQPassword"> <soap:operation soapAction="urn:QQServiceIntf-IQQService#GetQQPassword" style="rpc"/> <input message="tns:GetQQPassword2Request"> <soap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn:QQServiceIntf-IQQService"/> </input> <output message="tns:GetQQPassword2Response"> <soap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn:QQServiceIntf-IQQService"/> </output> </operation> </binding> <service name="IQQServiceservice"> <port name="IQQServicePort" binding="tns:IQQServicebinding"> <soap:address location="http://sunflowerbbs.oicp.net:9015/UniversalService/QQService.dll/soap/IQQService"/> </port> </service> </definitions>
注意:
<operation name="GetQQPassword"> <soap:operation soapAction="urn:QQServiceIntf-IQQService#GetQQPassword" style="rpc"/> <input message="tns:GetQQPassword2Request"> <soap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn:QQServiceIntf-IQQService"/> </input> <output message="tns:GetQQPassword2Response"> <soap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn:QQServiceIntf-IQQService"/> </output> </operation>
它标识了命名空间下的函数名,输入参数,输出参数.
注意
<soap:address location="http://sunflowerbbs.oicp.net:9015/UniversalService/QQService.dll/soap/IQQService"/>
它标识了soap调用的地址.
下面附注源码(包含必须的xerces.jar,activation.jar,soap.jar,mail.jar).
- call-webservices.zip (1.2 MB)
- 下载次数: 33
发表评论
-
MySQL的XML接口-数据解析
2016-01-21 21:46 1156MySQL从5.1.5开 ... -
xml + xslt => html => pdf
2014-03-05 18:02 1805继上一篇:使用java将xml格式化,本blog主 ... -
【Python真的很强大】md5sum in Python
2014-01-17 13:17 2300''' md5sum in Python ... -
使用java将xml格式化
2013-12-25 18:04 2122将生成的xml用ie浏览器打开,就可以见到漂亮的缩进的xm ... -
【Python真的很强大】程序Log实时监控
2013-12-10 16:45 7368需求构思: 在linux下常常需要查看程序的实时输出,我 ... -
【Python真的很强大】开发简易在线搜索
2013-11-25 23:54 1804需求如下:开发一个简易的搜索引擎(即提供查询关键字的服 ... -
haproxy使用总结
2012-10-17 17:19 1303DESCRIPTION HAProxy i ... -
集合数据比较
2012-07-31 12:17 1133数据比较的原型模型是两集合的操作(求交集,并集,补集),如下 ... -
利用事件冒泡(Event Bubbling )获取鼠标下的元素属性
2010-03-17 16:21 2071<html> <head> ... -
Generic Classes & Reflect
2010-02-26 10:05 1132abstract class TestGeneric1 < ... -
在数据库中用正则表达式查询数据
2009-12-30 21:20 1906Mysql5.0及以后直接支持. select * fro ... -
AjaxAnyWhere+Struts的一个应用(demo/feature crew)
2009-12-28 21:05 2823AjaxAnywhere介绍: Aja ... -
构建自己的Properties
2009-10-08 10:12 4658开发到了一定时间,就会有很多的定式思维阻碍我们。 比如问到XM ... -
gwt Client-Server 交互原形模型
2007-10-16 13:17 2470gwt Client-Server 交互原形模型 ...
相关推荐
<asp:Button ID="btnCallWebService" runat="server" Text="Call WebService" OnClientClick="callWebService(); return false;" /> <asp:Label ID="lblResult" runat="server"></asp:Label> function ...
在“VBA Call WebService”的场景中,我们关注的是如何使用VBA来调用Web服务,尤其是通过SoapToolkit进行通信。 SoapToolkit是一个用于创建和消费SOAP(Simple Object Access Protocol)消息的工具,它使得VBA能够...
而"CB Call WebService"则是一个具体的项目实例,展示了如何在C++ Builder 6.0环境下调用Web服务。 Web服务是一种通过互联网进行通信的标准协议,它允许应用程序之间交换数据和协同工作。最常见的是基于SOAP...
在IT领域,Web服务是一种通过网络进行通信的软件系统,常用于不同应用程序之间的交互。C#作为.NET框架的一部分,提供了一种强大而便捷的方式来调用Web服务,特别是那些基于SOAP(简单对象访问协议)的Web服务。...
在示例中,"SQL项目调用Webservice示例"可能包含了一个完整的.NET存储过程示例,用于演示如何构建和调用Web Service。可能的结构包括: - 存储过程源代码,展示如何使用`System.Web.Services`命名空间的`WebClient`...
C#动态调用webservice服务 先初始化类 WebServiceCall.WebServiceCall webservicecall1 = new WebServiceCall.WebServiceCall(); 然后调用方法 WebService()
FB4 call WEBSERVICE,base on SOAP protocol.. the webservice writed with C#. FB4 call WEBSERVICE,base on SOAP protocol.. the webservice writed with C#. FB4 call WEBSERVICE,base on SOAP protocol.. the ...
在IT行业中,Web服务是一种基于互联网的标准协议,用于应用程序之间的通信。...然而,通过一些特定的方法,我们可以让PL/SQL调用Web服务,从而实现数据库与外部系统的集成。本文将深入探讨如何从PLSQL调用Web服务的实例...
java代码-使用java解决webservice接口call调用方式的源代码 ——学习参考资料:仅用于个人学习使用!
在SAP中调用外部WebService还需要创建一个RFC (Remote Function Call) 目的。这个步骤确保SAP系统能够通过HTTP协议与外部WebService建立连接。主要步骤包括: 1. **配置RFC连接**: 使用事务代码SM59进入RFC连接配置...
在探讨Java调用带有JSON参数的WebService之前,我们首先需要了解几个关键的技术概念:Java、JSON以及WebService。 Java是一种广泛使用的编程语言,它具有面向对象、跨平台、多线程以及健壮性等特点。Java在企业级...
### WebService开发过程详解 #### 一、概述 本文将详细介绍如何使用Eclipse集成开发环境(IDE)结合Tomcat服务器及Axis框架来开发一个简单的WebService应用。对于初学者来说,这是一个很好的入门指南,通过本教程...
### Oracle调用WebService接口地址Demo解析 #### 一、引言 在企业级应用开发中,不同系统间的集成与通信尤为重要。Oracle数据库作为一款广泛使用的数据库管理系统,支持多种方式与其他系统进行交互,其中通过调用...
- **RPC (Remote Procedure Call)**:是一种传统的远程服务调用方式,它模拟本地函数调用的方式调用远程服务。 - **消息传递**:相比于RPC,消息传递模式更加灵活,它不依赖于特定的服务接口定义,而是通过发送消息...
Web服务(WebService)是一种基于标准协议的,可互操作的软件接口,允许不同系统之间进行数据交换和功能调用。在本案例中,我们将重点讨论如何使用Axis框架来调用Web服务并传递参数。 首先,我们需要理解Web服务的...
### WebService之通俗理解 #### 一、WebService简介与应用场景 WebService是一种标准的网络服务,它使得不同系统之间可以通过标准的协议(如HTTP)进行数据交换和服务调用,而无需关心底层实现细节。WebService...
### Android调用.NET WebService详解 #### 一、概述 在Android开发中,与服务器进行交互是必不可少的一个环节。常见的交互方式包括HTTP请求、RESTful API等,而WebService作为一种传统但依然广泛使用的通信协议,...
Call call = (Call) service.createCall(); ``` 通过`createCall()`方法创建一个`Call`对象,用于发送请求。 ##### 3. 设置目标地址 ```java call.setTargetEndpointAddress(new java.net.URL(endpoint)); ``` 设置...
### Java访问C#开发的Webservice详解 #### 一、引言 在现代软件开发过程中,尤其是对于大型项目而言,采用分布式系统架构已经成为一种常态。分布式应用能够将复杂的业务逻辑分解并部署到不同的服务器上,从而提高...