lemodd 发表于 2013-5-19 20:51:51

【求助】用python发送arduino采集的数据到yeelink,莫名错误

本人想用python发送arduino 数据到yeelink,但是一直提示
406 Not Acceptable
b'Data format incorrect.'
如果把"Content-Length": 改为9以上,则没有反应。
请高手指点啊!

代码入下:
import http.client, urllib.parse

params = urllib.parse.urlencode({"value":29})
headers = {"U-ApiKey":"632xxxxxxxxxxxxxxxxxxxx",
         "Content-Length": 8,
         "Content-type": "application/x-www-form-urlencoded",
         "Connection": "close",
         "Accept": "*/*"
         }
conn = http.client.HTTPConnection("api.yeelink.net")
conn.request("POST",url="/v1.0/device/2432/sensor/3557/datapoints", body=params, headers=headers)
response = conn.getresponse()
print(response.status, response.reason)
data = response.read()
print(data)
conn.close()

davidce 发表于 2013-5-19 22:00:41

可能是这句的问题
03.params = urllib.parse.urlencode({"value":29})

lemodd 发表于 2013-5-20 00:32:30

davidce 发表于 2013-5-19 22:00 static/image/common/back.gif
可能是这句的问题
03.params = urllib.parse.urlencode({"value":29})

还望明示啊

davidce 发表于 2013-5-20 08:02:09

urlencode 后的括号里应该都是字符串

lemodd 发表于 2013-5-20 09:35:41

davidce 发表于 2013-5-20 08:02 static/image/common/back.gif
urlencode 后的括号里应该都是字符串

我是按文档改的,就是这样的,改成字符串反而会报错import http.client, urllib.parse
params = urllib.parse.urlencode({'@number': 12524, '@type': 'issue', '@action': 'show'})
headers = {"Content-type": "application/x-www-form-urlencoded",
         "Accept": "text/plain"}
conn = http.client.HTTPConnection("bugs.python.org")
conn.request("POST", "", params, headers)
response = conn.getresponse()
print(response.status, response.reason)
页: [1]
查看完整版本: 【求助】用python发送arduino采集的数据到yeelink,莫名错误