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
相关产品推荐
相关产品推荐

