我正在做一个项目,我必须从一个网站获取数据,然后将其发布到另一个网站。目前我还是个新手,所以我使用thingspeak.com帐户进行发帖实验,而且我还使用了urllib文档中使用的相同示例https://docs.python.org/2/library/urllib.html。
params = urllib.urlencode({'spam': 1, 'eggs': 2, 'bacon': 0})
# I am using this to check => eggs=2&bacon=0&spam=1
print params
f = urllib.urlopen("https://api.thingspeak.com/update?key=8TU6AC31T81MV52N&field1=",params)
print f.read()
然而,当我检查我的thingspeak网站http://api.thingspeak.com/channels/42628/feed.json?key=8TU6AC31T81MV52N时,我会得到这个特定条目
{"created_at":"2015-06-17T10:05:12Z","entry_id":19,"field1":""}
据说,或者至少我是怎么理解的,params应该发布到网站上,但我不明白为什么我得到了空字符串。另外,如果我循环它,它也不会工作,它只在第一次发布空字符串的迭代中工作,其余的是我将从f.read()中获得0读取。怎么了?!:\
非常感谢大家的帮助。如果我错了,也请改正。
您正在URL中发送名为
field1
的查询参数,但它被设置为任何空字符串。因此,thingspeak.com将field1
设置为""
。您传入的那些值params
是在HTTP POST请求的正文中发送的,它们不会以某种方式附加到URL。可以通过以下两种方式之一设置字段:
获取请求使用:
其中包括API密钥和
field1
的值。后请求:
thinkspeak将通过POST请求接受URL中的查询参数,例如,您可以在URL中传递
field1
,在body中传递API键:但是,在使用API时,它似乎只接受名为
field1
的查询参数。所有其他字段都将被忽略,甚至那些documented字段,如field2
、field3
等相关问题 更多 >
编程相关推荐