admin管理员组文章数量:1531689
2024年4月24日发(作者:)
Delphi编写天气预报查询小程序
(IXMLHttpRequest版)
其实那些内置天气预报功能的软件的天气预报功能也都是来源于网上!因为也没
有哪个软件公司会自己去架一个气象站了哈哈,现在我就来说说如何通过互联网
上的 信息来获取天气情况!
目前能查询天气的网站有不少,比较有名的有中国天气网与Google天气,大
部分站点与大部分软件的天气预报数据也都是来源于中国天气网!因为中国天气
网 是中国气象局相关的,所以他的数据会更准确一些!查阅本文信息时,假设
读者熟悉http协议与如何模拟网页提交等知识!
中国天气网有一个连接/data/+ ‘城市编码.html',
这个连接可以获取对应的城市的天气情况!返回Json数据,解析Json就能获得
该城市的天气!这个问题就在那个城市编码的获取 方式上,这个获取方式,网
上有代码的!我就不写了,我是直接将城市编码都包到资源文件中去了使用的时
候,直接从资源加载就行了!获得天气的Json数据, 用的事Http协议,这里
只要用可以提交http的数据的控件或者类都可以(比如,indy的idhttp,ics
的http控件都行,也可以使用 MSxml的IXMLHttpRequest,也可以使用
HttpRequest5.1或者使用WinHttp控件),这里我用的事最简单的方式,就用
了 Delphi直接带的indy的idhttp来获得
unit Unit4;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls,
Forms,
Dialogs, StdCtrls,msxml,uLkJSON, ExtCtrls, IdBaseComponent,
IdComponent,
IdTCPConnection, IdTCPClient, IdHTTP;
type
TComboBox = class(Box)
private
Values: TStringList;
public
constructor Create(AOwner: TComponent);override;
destructor Destroy;override;
procedure LoadFromFile(Filename: string);
procedure LoadFromRes(ResName: string);
end;
TForm4 = class(TForm)
Memo1: TMemo;
Panel1: TPanel;
ComboBox1: TComboBox;
Button1: TButton;
IdHTTP1: TIdHTTP;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
function pro_result(str:string):string ;
public
{ Public declarations }
List: TStringList;
HttpReq: IXMLHttpRequest;
end;
var
Form4: TForm4;
implementation
uses DateUtils;
{$R *.dfm}
{$R }
procedure 1Click(Sender: TObject);
var
url: string;
Json: TlkJSONobject;
ChildJson,tmpJson: TlkJSONbase;
begin
url :=
'/data/'+romIndex[Combo
dex]+'.html';
('Get', Url, False, EmptyParam, EmptyParam);
(EmptyParam);//开 始搜索
Url := seText;
Json := ext(url) as TlkJSONobject;
ChildJson := ['weatherinfo'];
;
if pe = jsObject then
begin
版权声明:本文标题:Delphi编写天气预报查询小程序 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/dongtai/1713924080a378337.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论