esp8266获取天气信息:心知天气get及url讲解说明

本人最近在使用esp8266获取天气预报,在网上搜寻了一番,使用了心知天气的api(不是打广告),本人对网络方面不是很懂,经过几天的查找资料与学习,然后在博客记录下,方便以后的学习可广大学友。
url全称是资源描述符,我们可以这样认为:一个url地址,它用于描述一个网络上的资源,而http中的get、post、put、delete就对于着这个资源的查、改、增、删4个操作,get一般用于获取/查询资源信息。
url的格式:
【协议】://【主机名(或者叫域名)】【:端口号(可选)】/【文件路径】/【文件名】
心知天气的api:
https://api.seniverse.com/v3/weather/now.json?key=smtq3n0ixdggurox&location=beijing&language=zh-Hans&unit=c
参考菜鸟教程:HTTP 消息结构
客户端请求消息
客户端发送一个HTTP请求到服务器的请求消息包括以下格式:请求行(request line)、请求头部(header)、空行和请求数据四个部分组成,下图给出了请求报文的一般格式。

esp8266获取天气信息:心知天气get及url讲解说明_第1张图片

服务器响应消息
HTTP响应也由四个部分组成,分别是:状态行、消息报头、空行和响应正文。

esp8266获取天气信息:心知天气get及url讲解说明_第2张图片

下面使用stream这个app软件来对心知天气的提供的api进行抓包解析:
https://api.seniverse.com/v3/weather/now.json?key=smtq3n0ixdggurox&location=beijing&language=zh-Hans&unit=c


api get请求的格式按照这个来对照,即可一目了然

esp8266获取天气信息:心知天气get及url讲解说明_第3张图片
请求方法是:GET,然后空格
URL是:/v3/weather/now.json?key=smtq3n0ixdggurox&location=beijing&language=zh-Hans&unit=c,然后空格
(get请求的数据会附在url之后(就是把数据放置在http协议头中),以’?‘分割url和传输数据,参数之间以’&'相连)
协议版本是HTTP/1.1,然后是**\r\n**(回车符换行符)
然后请求头部:
【主机名】
Host: api.seniverse.com\r\n
【接收的语言】
Accept-Language: zh-cn\r\n
【连接的模式】
Connection: keep-alive\r\n
剩下的几个我们不需要,他们是网页和请求设备的描述
使用esp8266创建tcp连接后发送请求行和请求头部,服务器会返回json格式的数据,然后解析就可以了
--------------------- 

转:https://blog.csdn.net/u013581207/article/details/86697157 
 

你可能感兴趣的:(esp8266获取天气信息:心知天气get及url讲解说明)