我正在运行Python代码将一些数据发布到我的Node.js服务器。在服务器上接收到数据后,我需要Node.js服务器将自定义响应和状态代码一起发送回Python。
我使用的是纯Node.js.没有像Express或Hapi这样的框架。我的代码完美无缺,但我无法打印所需的消息。
我的Python代码的一部分用于发布数据
import requests, json
payload = {
"DevId" : 'R',
"Sdata" : 'S',
"TimeS" : 'T',
"RSSI" : 'U'
}
jsonPayload=json.dumps(payload)
headers = {'Content-Type': 'application/json'}
post_res =requests.post(url='http://localhost:5555/',data=jsonPayload, headers=headers)
print post_response
我在Node.js服务器上尝试过的是。
1
response.writeHead(200, { 'Content-Type': 'text/plain'});
response.end('Server has received the data')
输出:<Response [400]>
2
response.writeHead(200, { 'Content-Type': 'text/plain','Trailer': 'Server-Message' });
response.addTrailers({ 'Server-Message': 'Ok' });
response.end();
输出:<Response [200]>
3
var message = 'Invalid Device ID';
response.writeHead(400, message, {'content-type' : 'text/plain'});
response.end(message);
输出:<Response [400]>
我没有收到上述代码的任何错误,所以我不知道我做错了什么。
我想要的输出,以及我需要打印从服务器接收的自定义消息的状态代码,在我执行Python代码的终端中。
<Response [200]> "The server has received the message"
答案 0 :(得分:1)
post_response.text
和post_response
示例:
server.js:
const http = require('http')
const server = http.createServer((req,res) => {
res.setHeader('Content-Type', 'text/html');
res.writeHead(200, { 'Content-Type': 'text/plain'});
res.end('Server has received the message');
})
server.listen(3000, (err) => {
if(err) {
console.error('error');
}
console.log('server listening on port 3000');
})
response.py:
import requests
r = requests.post('http://localhost:3000', { 'Content-Type': 'application/json'});
print(str(r) + " " + r.text)