You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ESP32平台MicroPython无法发送GET请求,求助解决方案

MicroPython urequests GET请求 OSError: -202 解决方法

问题分析

OSError: -202 在MicroPython中通常对应DNS解析失败或网络连接未建立,和urequests库本身关联不大,优先排查网络层面问题。

解决步骤

1. 确认开发板已成功连接WiFi

先执行以下代码验证网络状态:

import network
import time

wlan = network.WLAN(network.STA_IF)
wlan.active(True)

# 检查是否已连接
if not wlan.isconnected():
    # 填入你的WiFi账号密码
    wlan.connect("WiFi_SSID", "WiFi_PASSWORD")
    # 等待连接完成
    while not wlan.isconnected():
        time.sleep(0.5)
        print("正在连接WiFi...")

print("网络连接成功,IP信息:", wlan.ifconfig())

只有输出网络连接成功后,再尝试GET请求。

2. 手动指定DNS服务器

如果WiFi连接成功但仍报-202,大概率是DNS解析失败。手动配置公共DNS(比如谷歌8.8.8.8):

# 替换为你所在网段的IP、子网掩码、网关,最后一项是DNS
wlan.ifconfig(('192.168.3.105', '255.255.255.0', '192.168.3.1', '8.8.8.8'))

网关填你的路由器IP,IP地址要和路由器网段一致。

3. 更换测试端点

原请求地址http://pastebin.com/raw/4309d09可能存在访问限制,先测试更稳定的公共API:

import urequests

try:
    response = urequests.get('http://httpbin.org/get')
    print(response.text)
    response.close()  # 记得关闭连接,避免资源泄漏
except Exception as e:
    print("请求失败:", e)

4. 确保urequests库适配MicroPython

不要用pip安装的micropython-urequests(部分版本存在兼容性问题),直接使用MicroPython官方维护的urequests.py:

  • 在Thonny中新建文件,粘贴官方代码
  • 将文件保存到开发板根目录,命名为urequests.py,覆盖原有文件

5. 排查网络环境限制

如果是公司/校园网络,可能存在防火墙、代理拦截,换用家用WiFi测试是否正常。

内容的提问来源于stack exchange,提问作者sev3333

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 23:43:25