极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8587|回复: 4

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

[复制链接]
发表于 2013-5-19 20:51:51 | 显示全部楼层 |阅读模式
本人想用python发送arduino 数据到yeelink,但是一直提示
406 Not Acceptable
b'Data format incorrect.'
如果把"Content-Length": 改为9以上,则没有反应。
请高手指点啊!

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

  2. params = urllib.parse.urlencode({"value":29})
  3. headers = {"U-ApiKey":"632xxxxxxxxxxxxxxxxxxxx",
  4.            "Content-Length": 8,
  5.            "Content-type": "application/x-www-form-urlencoded",
  6.            "Connection": "close",
  7.            "Accept": "*/*"
  8.            }
  9. conn = http.client.HTTPConnection("api.yeelink.net")
  10. conn.request("POST",url="/v1.0/device/2432/sensor/3557/datapoints", body=params, headers=headers)
  11. response = conn.getresponse()
  12. print(response.status, response.reason)
  13. data = response.read()
  14. print(data)
  15. conn.close()
复制代码
回复

使用道具 举报

发表于 2013-5-19 22:00:41 | 显示全部楼层
可能是这句的问题
03.params = urllib.parse.urlencode({"value":29})
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-5-20 00:32:30 | 显示全部楼层
davidce 发表于 2013-5-19 22:00
可能是这句的问题
03.params = urllib.parse.urlencode({"value":29})

还望明示啊
回复 支持 反对

使用道具 举报

发表于 2013-5-20 08:02:09 | 显示全部楼层
urlencode 后的括号里应该都是字符串
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-5-20 09:35:41 | 显示全部楼层
davidce 发表于 2013-5-20 08:02
urlencode 后的括号里应该都是字符串

我是按文档改的,就是这样的,改成字符串反而会报错
  1. import http.client, urllib.parse
  2. params = urllib.parse.urlencode({'@number': 12524, '@type': 'issue', '@action': 'show'})
  3. headers = {"Content-type": "application/x-www-form-urlencoded",
  4.            "Accept": "text/plain"}
  5. conn = http.client.HTTPConnection("bugs.python.org")
  6. conn.request("POST", "", params, headers)
  7. response = conn.getresponse()
  8. print(response.status, response.reason)
复制代码
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-5-20 15:57 , Processed in 0.066277 second(s), 19 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表