张志峰的博客

水滴石川,积少成多。

导航

delphi7调用webservice Java 传入参数为空

Posted on 2013-10-30 16:48  ╰★张志峰★╮  阅读(2935)  评论(0编辑  收藏  举报


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