请教:Delphi7与.net WebMethod传递字符(100分)

  • 主题发起人 主题发起人 JoyHero
  • 开始时间 开始时间
J

JoyHero

Unregistered / Unconfirmed
GUEST, unregistred user!
我用C#编写了一个WebService,其中有一个WebMethod为SubmitOrder(string xmlString),
然后用Delphi 7编写Client连接这个WebService,当我调用SubmitOrder回传一个xml格式的
string时,到.net里面跟踪,传入的string中,中文全部变成了“?????”,在Delphi中将
string改为WideString也不行,请大家帮帮忙,帮我解决一下这个问题。
 
Delphi 7 我没有用过,不过Delphi6和visula.net bata2中我测试过是可以的
 
使用Delphi调用C#写的WebService,不会很简单哦,因为VS.NET的XML Web Service
中使用的XML文档格式与Delphi的不一样,更重要的是,这里的不一样很细微,
以至于似乎Delphi是可以调用的,但是,实际做的时候,却不行。。。。
如果真的要用Delphi调用C#的东西的话,有两种办法:
一种是安装Microsoft Soap Toolkit,这样的话,就可以使用MSSOAP.SoapClient去调用。
另外一种办法就是让C#生成WebSErvice的时候,改变其缺省的生成xml Web Service的
XML文档生成的格式,
呵呵,后面的方法复杂一些。前面的方法简单一些。
自己看着办吧。。。
 
dop说的有理。我也碰到过这种情况,当传输值是中文时,用Delphi调用.Net的Web Service
出现乱码“?????”,但是用.Net调用Delphi的Web Service却正常。比较Delphi和.Net生成
的WSDL文件时会发现有很多不同。
能否请dop把第二种方法详细的介绍一下。
 
已经解决这个问题,不过还是感谢大家的回答。
加上下面这句代码就可以了:
HTTPRIO.HTTPWebNode.UseUTF8InHeader := True;
 
多人接受答案了。
 

Similar threads

回复
0
查看
1K
不得闲
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部