在delphi7中,new-webservices-wsdl importer中输入wsdl地址,会自动生成wsdl单元代码。 在调用时,传入参数到服务器端时为空了。
网上说缺少 InvRegistry.RegisterInvokeOptions(TypeInfo(ServiceRS_JGXXPortType), ioDocument); 这句,可是我的代码里都有的。
以下是代码里的前四句 InvRegistry.RegisterInterface(TypeInfo(ServiceRS_JGXXPortType), 'http://release.service.das.jeaw.com', 'UTF-8'); InvRegistry.RegisterDefaultSOAPAction(TypeInfo(ServiceRS_JGXXPortType), 'urn:%operationName%'); InvRegistry.RegisterInvokeOptions(TypeInfo(ServiceRS_JGXXPortType), ioDocument); InvRegistry.RegisterInvokeOptions(TypeInfo(ServiceRS_JGXXPortType), ioLiteral);
请高人指点下,为什么传入参数为空?
解答:
加上最后一句试试
Result := nil; if (Addr = '') then begin if UseWSDL then Addr := defWSDL else Addr := defURL; end; if HTTPRIO = nil then RIO := THTTPRIO.Create(nil) else RIO := HTTPRIO; RIO.HTTPWebNode.UseUTF8InHeader:= True;//加上这句
InvRegistry.RegisterInvokeOptions(TypeInfo(WebService1Soap),ioDocument); 这其中,WebService1Soap是你的对象名.按自己的情况改就是了.
|
请发表评论