gpt4 book ai didi

python - IBM Watson IoT 和 Python 请求

转载 作者:可可西里 更新时间:2023-11-01 16:36:08 26 4
gpt4 key购买 nike

我创建了一个 IBM Watson IoT 平台和一个设备类型“testdevice”。

我想要一个简单的测试,通过 Python 脚本和 HTTP API 推送数据。

到目前为止,我已经设法能够推送数据,但得到:

(403, 'Not allowed')

我可以在 IBM Watson IoT 日志中看到我的计算机已尝试推送数据,但身份验证失败

作为请求 header ,我使用 auth=('use-token-auth', 'MY-TOKEN')所以整个代码是:

import requests

response = requests.post('http://MY-ORG-ID.messaging.internetofthings.ibmcloud.com:1883/api/v0002/device/types/testdevice/devices/MY-DEVICE/events/test', data={'number': 1}, auth=('use-token-auth', 'MY-TOKEN'), headers={'Content-type': 'application/json'})

print(response.text) #TEXT/HTML
print(response.status_code, response.reason) #HTTP

认证失败可能是什么原因?

最佳答案

您是否尝试过通过 HTTPS 进行连接?从年中开始,默认情况下,组织被配置为拒绝不安全的连接,除非用户专门启用此功能(如果你想在你的组织中启用未加密的连接,你可以在仪表板的设置面板中找到这个选项),这是您收到 403 不允许响应的一个可能原因。

仅供引用,您可能还对 Python client library 感兴趣,它支持仅 HTTP 连接以及功能更丰富的 MQTT 客户端:

pip 安装 ibmiotf

import ibmiotf.device

options = {"org": orgId, "type": "testdevice", "id": "MY-DEVICE", "auth-method": "token" , "auth-token": "MY-TOKEN"}
client = ibmiotf.device.HttpClient(options)

data={'number': 1}
client.publishEvent("test", "json", data)

关于python - IBM Watson IoT 和 Python 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46642459/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com