2017-07-24 117 views
0

我有2个Django服务器。我想从服务器发送一些POST数据到服务器B.不能有与python模块发送POST数据请求

我用这个代码在服务器A发送数据(我只需按照tutorial):

payload = {"contenu" : Contenu, "ID" : hashage} 
payload_json = json.dumps(payload, separators=(',', ': ')) 
with open('backend/config.json') as json_data: 
    facto = json.load(json_data) 
    json_data.close 
hostnamefacto = facto["Factory"]["IP"] 
portFacto = facto["Factory"]["port"] 
reponse = requests.post('http://'+hostnamefacto+':'+portFacto+'/outil/test/', data = payload_json) 

服务器B上,我用此代码获取数据:

try: 
    contenu = request.POST['contenu'] 
except KeyError: 
    contenu = None 
try: 
    ID = request.POST['ID'] 
except KeyError: 
    ID = None 

但是ID和contenu是相等的无。有人知道如何去做吗? 非常感谢。

回答

1

您正在阅读的你想要解析为JSON的原始体的POST parameters

data = json.loads(request.body) 
id = data['ID'] 

让请求库做的JSON编码您:

payload = {"contenu" : Contenu, "ID" : hashage} 
r = requests.post('http://'+hostnamefacto+':'+portFacto+'/outil/test/', json=paylod) 
+0

我尝试什么你告诉我,但我得到一个错误。我通过用json.loads替换json.load来解决它,它可以工作。谢谢。 – neli

+0

Doh!那些dang typos =) – Justin