delphi调用WEBservice

本文档记录了在Delphi 6中使用Web Service时遇到的问题及其解决方案,包括Internal error (500)、命名空间解析错误以及调用方式不匹配导致的空参数问题。通过注册SOAPAction、更新Delphi版本和理解不同调用方式,可以成功调用由VS2005(C#)编写的Web Service。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

客户端程序由delphi6开发,WEB SERVICE是VS2005(C#)写的。碰到的问题很多,大都GOOGLE都可以找到答案。但有些我还是重复一下,另外我碰到的一些问题也在这里备注一下。

刚开始是在Delphi6+sp1的环境下开发客户端程序,会出现Internal error(500)的错误或调用的web service的命名空间不正确,无法正确解析。解决办法是在用wsdl importer工具生成的代理类中插入以下两句话:

? InvRegistry.RegisterDefaultSOAPAction(TypeInfo(ServiceSoap), 'http://www.qk.com/HelloWorld');//①
? InvRegistry.RegisterInvokeOptions(TypeInfo(ServiceSoap), ioDocument);
①处方法的第二个参数HellowWorld前半部分表示web service类的命名空间,也就是在C#中定义的命名空间,代码片断如下:InvRegistry.RegisterInvokeOptions(TypeInfo(DataServiceSoap), ioDocument); 就报错,说InvRegistry没有RegisterInvokeOptions声明。解决办法是下载delphi6 sp2就可以了。
...
[WebService(Namespace:="http://www.qk.com/")
[WebServiceBinding(ConformsTo=WsiProfiles.None)]
[SoapRpcService(RoutingStyle=SoapServiceRoutingStyle.SoapAction)]
public class Service?
? ......
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值