在 esp32s3 上使用 micropython 中的请求进行 https-post 请求

问题描述 投票:0回答:1

我正在尝试写入 Mongodb 数据库。 当我提出请求时,我收到错误

HTTP error: BadStatusLine: []
。 我正在使用 ESP32S3 和 Micropython v1.23.0。

我的代码:

import json
import requests

def insert_one(data:list = []) -> None:
        try:
            # Need to substitute from DATA API
            url = "https://eu-central-1.aws.data.mongodb-api.com/app/data-zjbrnke/endpoint/data/v1/action/insertOne"
            headers = {"api-key": "TOKEN"}
            payload = {
            "dataSource": "Cluster0",
            "database": "main",
            "collection": "main",
            "document": {'teste': 'test'},
            }

            print("sending...")

            response = requests.post(url, headers=headers, data=json.dumps(payload), timeout=20)

            print("Response: (" + str(response.status_code) + "), msg = " + str(response.text))

            if response.status_code == 201:
                print("Added Successfully")
            else:
                print("Error")

            # Always close response objects so we don't leak memory
            response.close()

        except Exception as e:
            print(f'error: {e}')

我尝试将 json 更改为 data,以及其他一些小的更改,但没有给出任何内容。

mongodb python-requests micropython
1个回答
0
投票

我认为首先你应该添加

"content-type": "application/json"
标头并看看会发生什么。然后尝试打印响应对象并检查有效的响应代码是否可用。

Exception

http.client.BadStatusLine
- HTTPException 的子类。如果服务器响应我们不理解的 HTTP 状态代码,则会引发该异常。

© www.soinside.com 2019 - 2024. All rights reserved.