2016-03-03 46 views
0

我在嘗試使下一個代碼工作時遇到一些異常。從python發送郵件到節點

的Python 2.7:

jsonDictionaryInner["message"] = message_received 
    jsonDictionaryInner["mac"] = repr(myMACInner) 
    jsonDictionaryInner["mac"] = jsonDictionaryInner["mac"].replace('\'', '') 
    try: 
     json_dumped = json.dumps(jsonDictionaryInner) 
     headers = {'Content-type': 'application/json', 'Authorization': myMACInner, 'Content-Length':len(json_dumped)} 

     if type_message == "obs": 
     requests.post(urlObservation, data=json_dumped, headers=headers) 

json_dumped看起來是這樣的,如果我發佈前打印:

{"message": {"measurements": [{"position": 0, "sensor": 11, "value": 26.56}, {"position": 1, "sensor": 12, "value": 90.0}, {"position": 1, "sensor": 13, "value": 23.2}], "id": 34, "observationDate": "2016-03-03 19:39:37"}, "mac": "8b:45:ed:11:77:ab\\n"} 

我僞造的MAC地址,但它類似於一個。

在node.js的一面:

app.post('/adddevice', function(req, res) { 
    console.log("adddevice"); 
    addDevice(req.get('authorization'), req.body, function(data){ 
                res.send(data); 
              }); 
}); 

異常在Python的一面:

('Connection aborted.', BadStatusLine("''",)) 

在node.js的一面:

SyntaxError: Unexpected end of input 
at Object.parse (native) 
at parse (/home/myfolder/myapi/node_modules/body-parser/lib/types/json.js:88:17) 
at /home/myfolder/myapi/node_modules/body-parser/lib/read.js:116:18 
at invokeCallback (/home/myfolder/myapi/node_modules/raw-body/index.js:262:16) 
at done (/home/myfolder/myapi/node_modules/raw-body/index.js:251:7) 
at IncomingMessage.onEnd (/home/myfolder/myapi/node_modules/raw-body/index.js:308:7) 
at IncomingMessage.EventEmitter.emit (events.js:92:17) 
at _stream_readable.js:920:16 
at process._tickCallback (node.js:415:13) 

我使用的快遞和身體解析器在node.js邊和json以及python的請求中

回答

0

似乎json有效載荷正在被截斷。你能打印什麼真正的節點接收有效載荷?

+0

我不行。在「adddevice」被打印之前給出例外。所以我不知道會發生什麼。至少,我不知道如何調試它。 – Biribu

+0

試試https://jsfiddle.net/mhedp1kh/ 檢查身體長度也忘了 – loadaverage