欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

delphi 调用webservice 失误

更新时间: 2014-01-05 02:01:38 责任编辑: Author_N1

 

Delphi 调用WebService 出错
1.新建一个App, 放上一个button, listbox, HTTPRIO
2.新建webservices -> wsdlInmporter 导入你这个网站的Wsdl 让程序知道调用规则
  不出意外会生成个WeatherWebService.pas ,主窗体引用它
  http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?wsdl

3.设置HTTPRIO的 port, service, wsdlLocation 会下拉出来
4.写点代码吧
  //得到支持的地区
procedure TForm1.Button1Click(Sender: TObject);
var
  AOS,ss: ArrayOfString;
  I: Integer;
begin
  AOS := (HTTPRIO1 as WeatherWebServiceSoap).getSupportProvince;
  for I := Low(AOS) to High(AOS) do
  Listbox1.Items.Add(AOS[I]); -- 可以把所有省份列出来

但是使用下面代码,出现错误:
  -- 取省份下的城市
  ss := (HTTPRIO1 as WeatherWebServiceSoap).getSupportCity('广西')
  -- 取城市的天气
  ss := (HTTPRIO1 as WeatherWebServiceSoap).getWeatherbyCityName('深圳');

---- 错误信息为:
Project Project1.exe raised exception class ERemotableException with message '服务器无法处理请求。 ---> 未将对象引用设置到对象的实例。'. Process stopped. Use Step or Run to continue.
--参考方法--
InvRegistry.RegisterInvokeOptions(TypeInfo(WeatherWebServiceSoap), ioDocument);

把这句加上2005前的版本不加这个就出错,我也是找了很久才发现的
--参考方法--
引用:
InvRegistry.RegisterInvokeOptions(TypeInfo(WeatherWebServiceSoap), ioDocument);

把这句加上2005前的版本不加这个就出错,我也是找了很久才发现的


而且要加到initialization 最后一行,我加到initialization 之后紧接着第一行,就一直报错。
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 02:01:38
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/4685/
本文WWW.DOC100.NET DOC100.NET版权所有。