我用delphi的THTTPRIO控件调用了c#写的webservice。
下面是我调试时遇到的一些问题:
1,导入wsdl文件:file--new----other----wenservice---WSDLimporter---输入wsdl地址:如下:http://10.0.1.128:7777/ShineMediaPublish/WebService/WebServiceCall.asmx?wsdl
注意末尾的:'?wsdl'不能少。要不可能会说找不到。
2,设置THTTPRIO控件的属性:
开始把http://10.0.1.128:7777/ShineMediaPublish/WebService/WebServiceCall.asmx?wsdl赋给了wsdlLocation属性。连接时总是报错。
后来赋给URL属性,就不报错了。
3,传递参数是web服务端总为空:
在导入的接口单元的声明部分添加如下代码:
InvRegistry.RegisterInvokeOptions(TypeInfo(WebServiceCallSoap),ioDocument);//其中红色部分为导入接口名称。
下面是客户端的简单代码:
unit Unit1;
interface
uses
type
var
implementation
{$R *.dfm}
procedure TForm1.btn1Click(Sender: TObject);
var
begin
end;
end.
本文介绍了如何使用 Delphi 的 THTTPRIO 控件来调用 C# 编写的 WebService。在调试过程中,遇到的问题包括导入 WSDL 文件时的细节,如末尾的 '?wsdl' 不能省略,以及设置 THTTPRIO 控件的 URL 属性以避免错误。此外,解决了传递参数时 Web 服务端接收为空的问题,通过在接口单元中注册 InvokeOptions 解决。提供了客户端调用 WebService 的简单代码示例。
5816

被折叠的 条评论
为什么被折叠?



