2017-07-24 43 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