Delphi7 调用WebService 如何自行组装报文?

catfox 2014-02-07 03:22:24
Delphi7 客户端,想用HTTPRIO的BeforeExecute事件自行组装XML报文,但不work:

客户端调用:
procedure TMainForm.Button5Click(Sender: TObject);
var
ret: String;
aHTTPRIO: THTTPRIO;
begin
aHTTPRIO := THTTPRIO.Create(nil);
aHTTPRIO.URL := 'http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?wsdl';
aHTTPRIO.HTTPWebNode.UseUTF8InHeader := True;
aHTTPRIO.OnBeforeExecute := onMyBeforeExecute; //HTTPRIO1BeforeExecute;
try
ret:=(aHTTPRIO as WeatherWebServiceSoap).getWeatherbyCityName('58367');
ShowMessage(ret);
finally
FreeAndNil(aHTTPRIO);
end;
end;


事件处理,这个事件是调用了,但最终传入查询参数还是用58367, 不是函数里设置的111
procedure TMainForm.onMyBeforeExecute(const MethodName: String;
var SOAPRequest: WideString);
var
sTmp: WideString;
begin
inherited;
sTmp := SOAPRequest;
StringReplace(sTmp, '58367', '111',[RfReplaceAll]);
SOAPRequest := sTmp;
//ShowMessage('onMyBeforeExecute');
//Memo1.Clear;
Memo1.Lines.Append('---------' + MethodName + '---------');
Memo1.Lines.Append(SOAPRequest);
end;
...全文
294 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
林石公 2014-02-11
  • 打赏
  • 举报
回复
文档说好像说就是这样子处理的 真不是太懂了
catfox 2014-02-07
  • 打赏
  • 举报
回复
memo1的内容(Request)内容是改了, 但最终调用WebService时,还是最初调用时的参数
林石公 2014-02-07
  • 打赏
  • 举报
回复
最后memo1里显示的内容没有替换??

1,593

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 网络通信/分布式开发
社区管理员
  • 网络通信/分布式开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧