Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 将ajax http post转换为python_Jquery_Python_Ajax_Post - Fatal编程技术网

Jquery 将ajax http post转换为python

Jquery 将ajax http post转换为python,jquery,python,ajax,post,Jquery,Python,Ajax,Post,我想用Python向服务器发送一些数据 我有一段来自jQuery的工作代码,它满足了我的要求: $.ajax({ type: "POST", contentType: "text/plain", url: "http://192.168.50.88/emoncms/nodes/1/tx/values", data: "17,58,5,1569,0,3000,236" }); 我需要用Python做同样的事情,但我不知道如何做。以下是我目前掌握的情况: impor

我想用Python向服务器发送一些数据

我有一段来自jQuery的工作代码,它满足了我的要求:

$.ajax({
    type: "POST",
    contentType: "text/plain",
    url: "http://192.168.50.88/emoncms/nodes/1/tx/values",
    data: "17,58,5,1569,0,3000,236"
});
我需要用Python做同样的事情,但我不知道如何做。以下是我目前掌握的情况:

import httplib, urllib
newdata = "17,58, 5,1569, 0, 3000, 236"
headers = {"Content-type": "text/plain"}
conn = httplib.HTTPConnection("192.168.50.88")
conn.request("POST", "/emoncms/nodes/1/tx/values", newdata)
response = conn.getresponse()
print response.status, response.reason
conn.close()
这会打印:“200 OK”,因此基本帖子可以正常工作,但我的数据没有到达服务器

有人能给我指出正确的方向吗?

用请求代替

import requests
requests.post(
    'http://192.168.50.88/emoncms/nodes/1/tx/values',
    data='17,58, 5,1569, 0, 3000, 236',
    headers={'content-type': 'text/plain'}
)
您还可以通过执行以下操作来存储响应

r = requests.post(...)
然后您可以从r变量访问响应代码、任何附加数据、标题等


因此,要回答我自己的问题-问题是我试图将数据发送到的特定目标,在raspberry pi上运行的能量记录程序在接受数据之前需要api密钥

如果有人对设备感兴趣,请参阅


感谢atlspin提供了比我自己的代码更清晰的代码。

一个附带问题:行
标题=…
中是否缺少引号?是的,你说得对,我在复制/粘贴中遗漏了一个引号。我已经编辑过将其放入.check out flask模块,特别是json.dumps()函数,我刚刚尝试过这个。然而,它仍然不起作用。打印r.status_代码会得到200,因此post本身是正常的,但服务器显然正在丢弃数据。我正在安装wireshark,以查看ajax和Python版本之间的格式是否存在任何差异。在使用wireshark进行调查并证明ajax和Python请求发送相同的帖子(除了在标题中不同地标识浏览器之外——正如您所料)之后。我已经意识到,我还需要发送一个apikey将数据发送到这个特定的数据库。浏览器正在发送cookie。我需要明确地发送apikey。谢谢你的帮助。使用请求比我原来的版本要整洁得多。我很高兴你把它整理好了!