Linux C代码获取天气情况

现在项目中有需要显示所在位置天气状况的需求,网上查了下,很多都是首先借助某些网站,获取自身ip所在的城市,然后再借助天气网站提供的api接口,提供城市编码然后获取天气状况。但是这种方法,ip网站往往不可靠,ip网站崩掉或者更换网址之后就没法用了。

后来查到一种方法, 那就是使用curl wttr.in方法获取天气。该方法原理和上面应该是类似的,不过不用自己操心ip和天气接口的事,只要去请求就行,网站会返回你想要的结果(具体使用什么网站获得天气信息不很清楚)。当然了,这个网站崩掉也会有问题…(😓),还有就是天气精度也不确定。

curl wttr.in方法支持的功能很多,他支持自动获取地址所在地天气状况,也支持请求特定城市所在地天气状况;获得天气信息方面,可以获得温度,湿度,天气整体状况(阴晴等),所在位置等等,还支持可视化显示,支持json格式,支持命令行,总之,功能很强大。

某位博主写的介绍:linux命令行获取天气
项目github地址: wttr.in

回到正题,在C中要使用该方法的话,需要借助libcurl库,然后去发送请求,通过请求的回调函数,获得天气结果,然后根据需要,自己去解析结果即可。

直接上代码:

// 解析天气数据   这里解析函数写的比较low就不贴了,最好用正则表达式匹配,这块技能暂时不掌握
void ParseWeatherInnfo(char* wInfo){
   
    printf("weather info  %s,strlen is %d.\n",wInfo,strlen(wInfo));
}


// 接收数据回调函数
static size_t receive_data(void *data, size_t size, size_t nmemb, void <
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值