Esp8266 -- 心知天气get请求及url讲解说明

本文介绍如何使用ESP8266模块通过心知天气API获取北京的实时天气数据。详细解析了HTTP GET请求的构成,包括URL、请求头等,并展示了如何利用这些信息与服务器通信,获取JSON格式的天气预报。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  1. 概要:
      本人最近在使用esp8266获取天气预报,使用了心知天气的api(不是打广告)。
      统一资源定位符【wiki百科】(英语:Uniform Resource Locator,缩写:URL;或称统一资源定位器、定位地址、URL地址[1],俗称网页地址或简称网址),我们可以这样认为:一个url地址,它用于描述一个网络上的资源,而http中的get、post、put、delete就对于着这个资源的查、改、增、删4个操作,get一般用于获取/查询资源信息。

  2. 心知天气的api(可访问,返回json数据):

    https://api.seniverse.com/v3/weather/now.json?key=smtq3n0ixdggurox&location=beijing&language=zh-Hans&unit=c
    
  3. url的格式:
    协议类型://主机名(或者叫域名)[:端口号(可选)]/文件路径/ [?查询(可选)]

    协议:https
    域名:api.seniverse.com
    文件路径:v3/weather/now.json
    查询:key=smtq3n0ixdggurox&location=beijing&language=zh-Hans&unit=c
    
  4. HTTP 消息结构: 【参考菜鸟教程】
    客户端请求消息
      客户端发送一个HTTP请求到服务器的请求消息包括以下格式:请求行(request line)、请求头部(header)、空行和请求数据四个部分组成,下图给出了请求报文的一般格式。
      
    服务器响应消息
      HTTP响应也由四个部分组成,分别是:状态行、消息报头、空行和响应正文。

      

  5. 抓包解析:
    下面使用stream这个app软件来对心知天气的提供的api进行抓包解析:

    api:
    	https://api.seniverse.com/v3/weather/now.json?key=smtq3n0ixdggurox&location=beijing&language=zh-Hans&unit=c
    
  6. get请求
    get请求的格式按照这个图来对照,即可一目了然
    在这里插入图片描述

    请求方法是GET 
    
    URL是/v3/weather/now.json?key=smtq3n0ixdggurox&location=beijing&language=zh-Hans&unit=c
    /*get请求的数据会附在url之后(就是把数据放置在http协议头中),以'?'分割url和传输数据,参数之间以’&'相连*/
    协议版本是HTTP/1.1
    
    请求头部:
    	【主机名】
    	Host: api.seniverse.com\r\n
    	/*剩下的几个我们不需要,他们是网页和请求设备的描述*/
    

    将对应信息放到方框里面:
    在这里插入图片描述
    最后写成字符串的形式:

    "GET /v3/weather/now.json?key=smtq3n0ixdggurox&location=beijing&language=zh-Hans&unit=c HTTP/1.1\r\nHost:api.seniverse.com\r\n\r\n"
    
  7. 使用esp8266创建tcp连接后发送这个字符串,服务器会返回json格式的数据,然后在进行json解析就可以了。

入口:Esp8266 – 心知天气get请求获取json天气数据(代码篇)

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值