delphi2010 开发及调试WebService 实例
使用delphi已经10多年了,一直搞桌面程序开发,对Webservice一直很陌生,近来因工作需要,学习delphi开发WebService,担心遗忘,作此笔记。 特别感谢 中塑在线技术总监 大犇
一、delphi开发WebService
1、打开delphi,选择New--other--WebService,在右侧选择 SOAP Server Application,点击OK
2、上一步点击OK后,会出现一个提示窗口,这里选择ISAPI 动态链接库,点击OK进入下一步
3、此时会提示一个确认窗口,询问是否为SOAP模块创建接口,这样要选择YES,delphi会为您自动创建一个接口,否则自己动手写会很麻烦
4、点击YES后,delphi会提示你输入 接口服务名称,这个名称在后面就是接口名和实现此接口的类名,这里我们键入MyTest,其他选项不要动,点击 OK
5、点OK后,delphi会自动创建两个单元,一个是MyTestIntf接口单元,一个是MyTestImpl接口实现单元
6、在MyTestIntf接口单元里面,接口声明后面写入你的接口函数,这个函数就是后面给别人调用实现一定功能的函数。
注意:函数声明后面一定要加上stdcall约束参数传入方式,否则其他语言可能无法调用此接口函数
7、切换到MyTestImpl接口实现单元,发现delphi已经为我们创建好了接口实现类TMyTest,在类的声明里面写上刚才的接口函数。当然也可以写入其他函数供你的接口函数内部调用,这里我重新构造了类的Create函数及析构函数
8、保存项目,编译生成DLL文件,此时delphi编写WebService 就完成了,如此简单
二、delphi调试WebService
1、打开IIS,新建网站,至于如何建立网站就不说了,给网站起名,选择物理路径等,把刚才编译好的DLL文件放入网站的物理目录里面
2、将新建的网站目录浏览打开
3、在网站的功能选项页,选择可执行程序映射,选择刚才的DLL文件,并在请求限制里面选择[执行],这个DLL就是IIS要调用执行的DLL
4、选择 应用程序池,把里面的 32位兼容打开(我这个版本编译出来的是32位的)和托管管道模式选择为 Classic
5、在浏览器中键入网址 http://127.0.0.1:你的网站端口,回车打开网站,此时浏览器会转到你的网站物理目录下,显示出里面的所有文件,其中有一个就是我们需要的DLL
6、点击那个DLL文件,会出现下面这个界面
7、点击WSDL,会出现如下界面。这是一个XML文档,描述WSDL的细节,浏览器地址栏中的地址是我们需要的,复制下来
8、返回delphi,新建一个VCL项目。接着选择New--other--WebService,选择WSDL importer,点击OK
9、出现一个提示窗口,键入第7步得到的WSDL网址,如果WebService不在本机,注意IP地址要修改
10、点击NEXT ---NEXT--OK,delphi会自动引入一个单元,这个单元就是WebService的接口单元,里面会自动生成一个Get开头方法。
在VCL单元引用这个单元,声明一个变量,变量的类型就是Get开头方法的返回值类型 var obj:IMyTest,使用这个Get方法给此变量赋值,接下来可以用这个变量调用接口函数 obj.HelloWord('哈哈哈')
至此delphi编写WebService及调用结束。
注:1、第7步得到的WSDL地址很重要,如果点击WSDL出现不了XML文档,说明有问题,这个WSDL地址是不可用的,很可能的原因是网站没配置好。
2、如果这个WSDL地址在公网上,其他任何人知道此地址和接口函数格式,都可以调用哦
delphi2010 开发及调试WebService 实例的更多相关文章
- delphi2010\delphi XE7 开发及调试WebService 实例
使用delphi已经10多年了,一直搞桌面程序开发,对Webservice一直很陌生,近来因工作需要,学习delphi开发WebService,担心遗忘,作此笔记. 特别感谢 中塑在线技术总监 大犇 ...
- [转]Axis2创建WebService实例
以下文章来自http://clq9761.iteye.com/blog/976029,作者clq9761 一.Axis2的下载和安装 1.可从http://ws.apache.org/axis2/ 下 ...
- Axis2创建WebService实例
一.Axis2的下载和安装 1.可从http://ws.apache.org/axis2/ 下载Axis2的最新版本: 可以下载如下两个zip包: axis2-1.5.4-bi ...
- PHP调用Webservice实例
原文 PHP调用Webservice实例 NuSoap是PHP环境下的WebService编程工具,用于创建或调用WebService.它是一个开源软件,是完全采用PHP语言编写的.通过HTTP收发S ...
- ASP.NET实现二维码 ASP.Net上传文件 SQL基础语法 C# 动态创建数据库三(MySQL) Net Core 实现谷歌翻译ApI 免费版 C#发布和调试WebService ajax调用WebService实现数据库操作 C# 实体类转json数据过滤掉字段为null的字段
ASP.NET实现二维码 using System;using System.Collections.Generic;using System.Drawing;using System.Linq;us ...
- 开发并调试 Mail Add-in
开发并调试 Mail Add-in (mail app for Outlook) 准备工作 如果你的邮箱搭建在 Exchange Server 上,则可以创建邮件应用程序(Mail Add-in)来扩 ...
- 安装Nginx+Lua+OpenResty开发环境配置全过程实例
安装Nginx+Lua+OpenResty开发环境配置全过程实例 OpenResty由Nginx核心加很多第三方模块组成,默认集成了Lua开发环境,使得Nginx可以作为一个Web Server使用. ...
- [WebService] 使用httpWebrequest 调用并调试WebService
使用httpWebrequest 调用并调试WebService. 首先 使用httpWebrequest 调用WebService 代码: using System.Net; ...
- devOps开发(Web API 实例)dotnet core 和 Azure PaaS服务
使用 dotnet core 和 Azure PaaS服务进行devOps开发(Web API 实例) 作者:陈希章 发表于 2017年12月19日 引子 这一篇文章将用一个完整的实例,给大家介绍如何 ...
随机推荐
- LD1-K(求差值最小的生成树)
题目链接 /* *题目大意: *一个简单图,n个点,m条边; *要求一颗生成树,使得其最大边与最小边的差值是所有生成树中最小的,输出最小的那个差值; *算法分析: *枚举最小边,用kruskal求生成 ...
- 查看ASM 使用率
有两种方法: 1.查看v$asm_diskgroup视图 SQL> select group_number,name,total_mb,free_mb from v$asm_diskgroup; ...
- 【HDOJ】1310 Team Rankings
STL的应用,基本就是模拟题. /* 1410 */ #include <iostream> #include <string> #include <algorithm& ...
- POJ3687 Labeling Balls(拓扑)
题目链接. 题目大意: N个球,从1-N编号,质量不同,范围1-N,无重复.给出小球间的质量关系(<), 要求给每个球贴标签,标签表示每个球的质量.按编号输出每个球的标签.如果解不唯一,按编号小 ...
- C++注释和doxygen注释
C++注释 C++的注释只有两种: 单行注释,以“//”开头: 段落注释,以“/*”开始,以“*/”结束. int value; // value是一个整型变量,这是一句单行注释 /* Test是一个 ...
- 《SDN核心技术剖析和实战指南》3.3读书笔记
这一节主要是介绍几种开源的SDN控制器. NOX/POX.最初的NOX混合了C++和Python两种编程语言,现在演变为两个版本.NOX版本主要面向Linux平台,利用C++开发,目标是提供快速的控制 ...
- Java Socket 编程指南
Socket,又称为套接字,Socket是计算机网络通信的基本的技术之一.如今大多数基于网络的软件,如浏览器,即时通讯工具甚至是P2P下载都是基于Socket实现的.本文会介绍一下基于TCP/IP的S ...
- 在ios中解析json数据
刚刚下午那会 弄了个 解析 xml demo的小例子,本想着json也挺复杂 弄还是 不弄,但是简单的看了下 发现挺简单 考虑了很久,还是写上来吧,毕竟json用得太多了,而且算是自己的积累吧,毕竟 ...
- ViewPager禁止滑动以及它与内层滑动控件水平方向上事件冲突的解决方法
一.上图 二.场景描写叙述 最近在做项目的时候.遇到一个怪异的需求,描写叙述例如以下: 1.ViewPager中嵌套3个View,当从View1滑动到View2时禁止ViewPager的滑动事件. 2 ...
- 【基础练习】【vector】codevs3393 序列倒置
版权信息 转载请注明出处 [ametake版权全部]http://blog.csdn.net/ametake欢迎来看 题目非常easy,本质还是练习一下vector 题目描写叙述 Descriptio ...