Delphi中调用.net的Web Service时,传入字符串编码的问题.(200分)

  • 主题发起人 主题发起人 AiBoo
  • 开始时间 开始时间
A

AiBoo

Unregistered / Unconfirmed
GUEST, unregistred user!
我在Delphi中用import wdsl的方法调用.net的Web Service,当Delphi程序在调用该Web Service的web方法时,将一个中文字符串作为参数传入到该方法中,在调试中发现在Web Service中执行该方法是传入的中文都变成了问号。请问如何解决该问题
 
tmpRIO.HTTPWebNode.UseUTF8InHeader := True;//tmpRIO为THTTPRIO
 
[:D] 骗分。
--------
Delphi7编写的客户端调用C#编写的WebService服务时,如果函数中传递的参数为汉字时,可能出现乱码现象。
在网上搜索了一些资料,找到解决办法:将HTTPRIO的UseUTF8InHeader属性改为true即可。
即编辑由Import WSDL文件生成的 *.pas 单元文件,在Get函数中增加一句:RIO.HTTPWebNode.UseUTF8InHeader:=True。

代码片断大致如下:
------------------
.......
try
RIO.HTTPWebNode.UseUTF8InHeader:=True;
//在此添加一句,修改编码方案。
Result := (RIO as test);
if UseWSDL then
begin
RIO.WSDLLocation := Addr;
RIO.Service := defSvc;
RIO.Port := defPrt;
end else
RIO.URL := Addr;
finally
if (Result = nil) and (HTTPRIO = nil) then
RIO.Free;
end;
.......
----------------
 
后退
顶部