色猫咪av在线网址_91精品国产福利在线观看雪梨还会玩转热点_丁香花的视频免费观看_国产手机在线A∨免费视频_十八禁av无码免费网站APP_综合色一区二区亚洲_日韩精品小电影_漂亮人妻熟睡中被公侵犯_全新成人高清无码片_高级厕所偷窥白领美女嘘嘘

當前位置: 首頁 >應(yīng)用方案 >技術(shù)應(yīng)用 >

基于天氣API接口講解HTTP協(xié)議的使用教程

HTTP超文本傳輸協(xié)議是一個基于TCP/IP通信協(xié)議來傳遞數(shù)據(jù)的(HTML文件、圖片文件、查詢結(jié)果等),本文將使用NA111工業(yè)級串口服務(wù)器或者其他支持TCP/IP協(xié)議的網(wǎng)絡(luò)聯(lián)網(wǎng)模塊(比如EC04系列、EC03系列、4G-05等),本文主要通過TCP客戶端模式進行HTTP請求,有時也會使用HTTPC模式進行HTTPC請求(前提時HTTP服務(wù)器支持該模式請求報文)。

首先需要找到可以請求的天氣查詢服務(wù)器,這里介紹兩個免費接口,需要注冊使用:

丫丫天氣:http://www.yytianqi.com/

心知天氣:https://www.seniverse.com/

還有很多類似的API接口,他們在使用方式上差異不大。

丫丫天氣查詢

1.打開天氣服務(wù)器網(wǎng)址http://www.yytianqi.com/點擊上方注冊按鈕,提供郵箱和手機號進行注冊,

2.注冊完成后登錄,第一次注冊贈送9天高級會員,可以查詢更多的天氣數(shù)據(jù),在會員管理中查看用戶密鑰(key),此密鑰在請求數(shù)據(jù)中作為用戶有效性判斷(判斷會員等級,非會員服務(wù)器拒絕請求),因此必須注冊使用,并使用郵箱激活賬號;

免費會員有請求限制比如心知天氣的每分鐘最多20次,丫丫天氣的每小時30次,不同服務(wù)器限制不同需要通過平臺查詢請求限制。


3.點擊API介紹詳細介紹了API的使用方式,通過GET方式請求:

地址:api.yytianqi.com:80,

URL/接口名稱?

請求數(shù)據(jù):city=城市ID&key=用戶key組合成為請求數(shù)據(jù):

1

這里我采用城市ID的方式進行請求,點擊丫丫天氣城市ID編碼列表:

配置2

以查詢“成都”城市編碼為例,打開網(wǎng)站后使用“Ctrl+F”搜索成都,編碼為:CH270101,如圖所示:

配置3

丫丫天氣的API接口是基于HTTP1.0協(xié)議開發(fā),因此串口服務(wù)器無法通過HTTP客戶端模式實現(xiàn)天氣請求,只能利用TCP客戶端結(jié)合短連接實現(xiàn);

配置4

串口服務(wù)器配置為動態(tài)IP與隨機端口,工作模式為TCP客戶端,并使能短連接(非必要,建議使能),配置目標IP與端口(api.yytianqi.com:80),詳細配置如下圖所示:

配置5

4.打開串口調(diào)試助手XCOM,發(fā)送GET請求包GET http://api.yytianqi.com/observe?city=CH010100&key=ixxxxxxxxxxxxxxh HTTP/1.0\r\n\r\n”(\r\n\r\n指代兩個換行符):

配置6

心知天氣查詢

1、心知天氣與丫丫天氣在賬戶認證上基本相同,但心知天氣支持更安全的簽名認證,首先注冊賬號獲取密鑰,

登錄后還需開通“天氣服務(wù)”,如下圖所示:

配置7

2、在申請完成后系統(tǒng)會自動生成API密鑰,如圖所示:

配置8

3、心知天氣的請求分為兩種方式:

私鑰認證https://api.seniverse.com/v3/weather/now.json?key=your_private_key&location=beijing&language=zh-Hans&unit=c

簽名認證方式

https://api.seniverse.com/v3/weather/now.json? location=beijing&language=zh-Hans&unit=c&ts=1443079775&ttl=300&uid=your_public_key

1私鑰認證

與丫丫天氣基本相同,見請求包的key=your_private_key,替換為你的私鑰,如圖:

配置9

心知天氣也采用HTTP1.0協(xié)議,也不能使用串口服務(wù)器的HTTP客戶端模式,串口服務(wù)器配置如下圖所示:

配置10

使用串口調(diào)試助手發(fā)用請求包:

GET https://api.seniverse.com/v3/weather/now.json?key=x&location=chengdu&language=en&unit=c

location=chengdu(支持城市ID、拼音、IP、GPS、城市中文名)

language=en(支持zh-Hans、en等);

unit=c(單位,cf);

配置11

2簽名認證

“公鑰 + 私鑰” 驗證方式更加安全。請求地址中只包含你的“公鑰”以及用你的“私鑰”制作的簽名,因此不會在請求地址中泄露你的私鑰。

簽名指的是通過HMAC-SHA1,對請求參數(shù)加密后得到的簽名字串進行身份驗證,避免了將“私鑰”明文包含在請求中而造成泄露。

HMAC-SHA1在線加密網(wǎng)站:https://1024tools.com/hmac

請求示例:

GET https://api.seniverse.com/v3/weather/now.json?location=beijing&language=en&unit=c&ts=1652095247&ttl=86400&uid=PlhQcyak4-TF5G0UU&sig=58QAjUWFAMpl7374DUVIiplsPqw%3d

location=beijing&language=en&unit=c不需要使用HMAC-SHA1進行加密,只需要對ts=1652095247&ttl=1800(非必要,不填默認為1800&uid=PlhQcyak4-TF5G0UU參數(shù)進行加密,如下圖所示:

配置12

簽名:BlEgDUcNlP3Yhn7QvuGSWS15wqc=,=”在HTTP中不能直接使用,需要轉(zhuǎn)移為%3d,轉(zhuǎn)換后BlEgDUcNlP3Yhn7QvuGSWS15wqc%3d

最終請求數(shù)據(jù)為:

GET https://api.seniverse.com/v3/weather/now.json?location=beijing&language=en&unit=c&ts=1652682517&ttl=86400&uid=PlhQcyak4-TF5G0UU&sig=BlEgDUcNlP3Yhn7QvuGSWS15wqc%3d

串口服務(wù)器配置與私鑰相同,通過串口調(diào)試助手發(fā)送數(shù)據(jù):

配置13

通過編寫MCGS串口數(shù)據(jù)解析腳本可以實現(xiàn)如下效果:

配置14


4000-330-990

https://www.wjx.cn/jq/84863372.aspx