Delphi 调用WebService接口
此测试程序使用Delphi2010编写
打开Delphi2010
一、File-> New-> Application 新建一个工程
在窗体上放置三个 Button按钮,一个ComboBox,两个Edit, 一个Memo和一个HTTPRIO
二、到File-> New-> Other-> WebServices-> WSDL importer
在打开的WDSL对话框,在Location of WSDL File or URL:
填写WSDL地址http://ws.webxml.com.cn/WebServices/WeatherWS.asmx?wsdl
Next>> Next>> Next>>Finish
之后系统会自动根据WSDL地址生成可以调用的单元文件WeatherWS.pas ,如下图
三、在HTTPRIO控件,设置URL属性http://ws.webxml.com.cn/WebServices/WeatherWS.asmx
四、在主窗体引用生成的WeatherWS.pas
五、编写按钮事件
第一个,获取省份,调用函数不用参数
procedure TFormMain.tbrCheLiangItems0Click(Sender: TObject);
var
pras : ArrayOfString;
i : Integer;
begin
pras := (htpr as WeatherWSSoap).getRegionProvince;
for i:= Low(pras) to High(pras) do
begin
cbb.Items.Add(pras[i]);
end;
end;
第二个,获取当前省份里的城市名称,调用函数需要一个参数:省份名称,如北京 或 河北
procedure TFormMain.tbrCheLiangItems1Click(Sender: TObject);
var
cityweather : ArrayOfString;
t : string;
i: Integer;
begin
cityweather := (htpr as WeatherWSSoap).getSupportCityString(edt.Text);
for i := Low(cityweather) to High(cityweather) do
begin
t := cityweather[i];
mmo.Lines.Add(t);
end;
end;
第三个,获取天气,调用函数需要两个参数:城市代码 和 用户ID(需要注册获取)
用户ID在ws.webxml.com.cn网站,注册登录后在会员专区里可以查看,并且申请试用此接口的权限,5天测试时间。
procedure TFormMain.tbrCheLiangItems2Click(Sender: TObject);
var
cityweather : ArrayOfString;
t : string;
i: Integer;
begin
cityweather := (htpr as WeatherWSSoap).getWeather(edtCity.Text,'fb5d2d13926c40c28cfb07cdba220589');
for i := Low(cityweather) to High(cityweather) do
begin
t := cityweather[i];
mmo.Lines.Add(t);
end;
end;
六、编译,执行!
此示例是根据https://blog.csdn.net/heihei122/article/details/7975574所制作。
因www.webxml.com.cn的服务主机地址变更,原示例直接操作下来不能正常编译和执行,故写此流程。
自己做个记录,方便以后查看。
如需源码,请发站内信,留下你的邮件地址。
写得不好请见谅。
联系客服