心知天气get及url讲解说明

时间:2024-03-26 22:44:04

本人最近在使用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)、空行和请求数据四个部分组成,下图给出了请求报文的一般格式。
心知天气get及url讲解说明
服务器响应消息
HTTP响应也由四个部分组成,分别是:状态行、消息报头、空行和响应正文。
心知天气get及url讲解说明
下面使用stream这个app软件来对心知天气的提供的api进行抓包解析:
https://api.seniverse.com/v3/weather/now.json?key=smtq3n0ixdggurox&location=beijing&language=zh-Hans&unit=c
心知天气get及url讲解说明
心知天气get及url讲解说明
心知天气get及url讲解说明
心知天气get及url讲解说明
api get请求的格式按照这个来对照,即可一目了然
心知天气get及url讲解说明

  1. 请求方法是:GET,然后空格
  2. URL是:/v3/weather/now.json?key=smtq3n0ixdggurox&location=beijing&language=zh-Hans&unit=c,然后空格
    (get请求的数据会附在url之后(就是把数据放置在http协议头中),以’?‘分割url和传输数据,参数之间以’&'相连)
  3. 协议版本是HTTP/1.1,然后是**\r\n**(回车符换行符)
  4. 然后请求头部:
    【主机名】
    Host: api.seniverse.com\r\n
    【接收的语言】
    Accept-Language: zh-cn\r\n
    【连接的模式】
    Connection: keep-alive\r\n
    剩下的几个我们不需要,他们是网页和请求设备的描述

使用esp8266创建tcp连接后发送请求行和请求头部,服务器会返回json格式的数据,然后解析就可以了