【问题标题】:Sending HTTP post requests发送 HTTP post 请求
【发布时间】:2019-05-03 05:41:55
【问题描述】:

我正在使用 micropython 固件 version esp8266-20190125-v1.10.bin for esp8266mod。我使用 picocom 通过有线连接访问 REPL 提示,并将设备连接到我的家庭 wifi。我正在尝试使用 urequests 发送一些 HTTP 发布请求。

import urequests response = urequests.post('http://lakshmick.pythonanywhere.com/savedata', data = {'string': 'posting from micropython'})

我遇到了这样的错误:

Traceback (most recent call last):
    File "<stdin>", line 1, in <module>
    File "urequests.py", line 115, in post
    File "urequests.py", line 100, in request
    File "urequests.py", line 79, in request
TypeError: object with buffer protocol required

在导入 urequest 之前是否需要任何额外的配置过程?

【问题讨论】:

    标签: micropython


    【解决方案1】:

    您需要在发送前将数据序列化成字符串:

    myPostedData = {'YYYY' : 100}
    res = urequest.post('https://XXX.amazonaws.com/XXX/XXX', data=json.dumps(myPostedData))
    jsonresults = json.loads(res.content)
    

    【讨论】:

    • 前两行相当于myPostedData = {'YYYY': 300},不是吗?