我正在尝试测试一个非常简单的Express App。我在打字稿文件中设置了我的Express,如下所示,以响应它收到的请求的正文:
app.listen(3000, () => console.log('Server running on port 3000'))
app.use(bodyParser.urlencoded({
extended: true
}))
app.use(bodyParser.json())
app.get('/test', (req, res) => {
res.send(req.body)
});
我试图按如下方式在python文件中调用此终结点
testUrl = 'http://localhost:3000'
path = '/test'
header = {
'Content-Type': 'application/json',
}
body = {
'artistName': 'test',
}
response = requests.request(
method="GET",
url = testUrl + path,
params=header,
data=body,
)
print(response._content)
当我运行python文件时,它打印出的所有内容是一组空括号,告诉我正在接收的请求的内容为空。如果将data参数设置为已填充的json对象,为什么主体为空?我使用了错误的参数吗?感谢您的帮助!
答案 0 :(得分:0)
我不知道您在Express代码中使用res.send(req.body)
是什么意思,但是req.body
并不用于Express中的GET请求。用于POST
或PUT
。
用于GET请求的参数作为queryString的一部分放在URL中,并将出现在Express的req.query
对象中。
答案 1 :(得分:0)
我认为您的错误出在请求中,
因为您将标头作为参数发送