delphi7调用webservice Java 传入参数为空

时间:2021-03-02 16:13:19

在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是你的对象名.按自己的情况改就是了.