首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

Delphi 开发天气预报小程序,该怎么解决

2012-02-11 
Delphi 开发天气预报小程序各位好,我想用Delphi 开发天气预报的小程序。试了很多方法,调用一些WebService ,

Delphi 开发天气预报小程序
各位好,
  我想用Delphi 开发天气预报的小程序。试了很多方法,调用一些WebService ,但还是不成功。请问那位开发过这样的程序,给帮帮。谢谢。。。
  我现在想调用:http://www.webxml.com.cn/webservices/weatherwebservice.asmx 这个,但是不懂如何输入参数(城市)

[解决办法]
你刚才给的这个WebService提供了示例与帮助文档啊,你可以参阅:

http://www.webxml.com.cn/webservices/weatherwebservice.asmx?op=getWeatherbyCityName
[解决办法]
用Delphi的话,我想用Indy的HTTP控件执行Get / Post 操作获取相应的XML,然后再解析应该比较简单吧?它提供的GET/Post示例:

HTTP GET
以下是 HTTP GET 请求和响应示例。所显示的占位符需替换为实际值。

GET /webservices/weatherwebservice.asmx/getWeatherbyCityName?theCityName=string HTTP/1.1
Host: www.webxml.com.cn

HTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8
Content-Length: length

<?xml version="1.0" encoding="utf-8"?>
<ArrayOfString xmlns="http://WebXml.com.cn/">
<string>string</string>
<string>string</string>
</ArrayOfString>
HTTP POST
以下是 HTTP POST 请求和响应示例。所显示的占位符需替换为实际值。

POST /webservices/weatherwebservice.asmx/getWeatherbyCityName HTTP/1.1
Host: www.webxml.com.cn
Content-Type: application/x-www-form-urlencoded
Content-Length: length

theCityName=string
HTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8
Content-Length: length

<?xml version="1.0" encoding="utf-8"?>
<ArrayOfString xmlns="http://WebXml.com.cn/">
<string>string</string>
<string>string</string>
</ArrayOfString>

[解决办法]
开发过
先从QQ的接口获取当前IP的地址,再通过中国天气的城市代码对照表获取城市代码,
然后导入天气接口的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: ArrayOfString;
I: Integer;
begin
AOS := (HTTPRIO1 as WeatherWebServiceSoap).getSupportProvince;
for I := Low(AOS) to High(AOS) do
Listbox1.Items.Add(AOS[I]);
end;
5.剩下的楼主自己写吧,如果写的成熟了,发份给我吧:)

[解决办法]
恩,是有点问题,这样再设一下 
1. 把 HTTPRIO1-> HTTPWebNode->的UseUTF8InHeader 设为True
2. 打开WeatherWebService.pas在initialization最下面添加上
InvRegistry.RegisterInvokeOptions(TypeInfo(WeatherWebServiceSoap), ioDocument);

热点排行