文件名称:Delphi 调用WebService 出错
文件大小:1KB
文件格式:TXT
更新时间:2017-08-10 14:36:58
delphi
Delphi 调用WebService 出错 1.新建一个App, 放上一个button, listbox, HTTPRIO 2.新建webservices -$amp;>amp;$nbsp;wsdlInmporter 导入你这个网站的Wsdl 让程序知道调用规则 不出意外会生成个WeatherWebService.pas ,主窗体引用它 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 '服务器无法处理请求。 ---$amp;>amp;$nbsp;未将对象引用设置到对象的实例。'. Process stopped. Use Step or Run to continue. InvRegistry.RegisterInvokeOptions(TypeInfo(WeatherWebServiceSoap), ioDocument); 把这句加上2005前的版本不加这个就出错,我也是找了很久才发现的 而且要加到initialization 最后一行,我加到initialization 之后紧接着第一行,就一直报错。