我正在尝试让我的 Raspberry Pi 记录温度数据并将其发布到自托管的 RESTful API。
我在成功将数据发布到 API 时遇到问题 - 这是我的代码:
[rPi Python代码]
import urllib
import urllib2
url = 'http://doopcreations.com/raspberry/api/data'
params = urllib.urlencode({
'item': 'temperature',
'data': '25.00'
})
print("Posting data: " + params)
response = urllib2.urlopen(url, params).read()
print(response)
这给了我一个错误:
{"error":{"text":SQLSTATE[23000]: 完整性约束违规:1048 列 'item' 不能为空}}
注意:我还尝试更新我的数据库以允许 NULL 值 - 这导致只插入空值 - 即/似乎我的 python 代码没有发布数据......
关于如何解决这个问题的任何想法?
[更新]
使用“Chrome Web Store - Advanced REST client”作为测试工具:
如果我发送:
{
"item": "temperature",
"data": "25.00"
}
作为有效载荷 - 我得到了一个成功的 POST。
但是,如果我发送:
{
'item': 'temperature',
'data': '25.00'
}
作为有效载荷 - 我收到错误:
{"error":{"text":SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'item' cannot be null}}
--