如何做 javascript 请求(supertest,superagent)表现得像 curl --data-binary
How to do javascript request (supertest, superagent) behaving like curl --data-binary
tl;博士;
在 curl 下发送是有效的,但我不能在 supertest 中做同样的事情(what wrap superagent https://github.com/visionmedia/superagent/)
curl 'http://local/api/items' -X DELETE -H 'Accept-Encoding: gzip, deflate' -H 'content-type: application/json;charset=UTF-8' --data-binary '"1234"'
我可以从 Web 界面删除项目,我在其中附加了包含所需文本的文件。
然后使用开发工具提取上面介绍的 curl 命令,这很有用。
如何在js中执行?
尝试过:
const response = yield request('http://local')
.delete('/api/items')
.set('Accept-Encoding', 'gzip, deflate')
.set('Content-Type', 'application/json;charset=UTF-8')
.send("1234");
然后我得到
"status":400,"error":"BodyNotReadable",
也许使用 write
可能是一个答案,但我不知道该怎么做。
可用选项的完整列表 https://github.com/visionmedia/superagent/blob/master/lib/node/index.js
你能试试这个吗:
request('http://local')
.delete('/api/items')
.set('Accept-Encoding', 'gzip, deflate')
.set('Content-Type', 'application/json;charset=UTF-8')
.write("1234")
.end((err, res) => {
// Get response here
});
尝试:
request
.delete('http://url/')
.set('Accept-Encoding', 'gzip, deflate')
.set('Content-Type', 'application/json;charset=UTF-8')
.send(JSON.stringify(body))
.type('json')
.then(response => {
console.log(response)
})
.catch(error => {
console.log(error)
});
关键是JSON.stringify
你要发送的负载。应该可以。
tl;博士; 在 curl 下发送是有效的,但我不能在 supertest 中做同样的事情(what wrap superagent https://github.com/visionmedia/superagent/)
curl 'http://local/api/items' -X DELETE -H 'Accept-Encoding: gzip, deflate' -H 'content-type: application/json;charset=UTF-8' --data-binary '"1234"'
我可以从 Web 界面删除项目,我在其中附加了包含所需文本的文件。
然后使用开发工具提取上面介绍的 curl 命令,这很有用。
如何在js中执行?
尝试过:
const response = yield request('http://local')
.delete('/api/items')
.set('Accept-Encoding', 'gzip, deflate')
.set('Content-Type', 'application/json;charset=UTF-8')
.send("1234");
然后我得到
"status":400,"error":"BodyNotReadable",
也许使用 write
可能是一个答案,但我不知道该怎么做。
可用选项的完整列表 https://github.com/visionmedia/superagent/blob/master/lib/node/index.js
你能试试这个吗:
request('http://local')
.delete('/api/items')
.set('Accept-Encoding', 'gzip, deflate')
.set('Content-Type', 'application/json;charset=UTF-8')
.write("1234")
.end((err, res) => {
// Get response here
});
尝试:
request
.delete('http://url/')
.set('Accept-Encoding', 'gzip, deflate')
.set('Content-Type', 'application/json;charset=UTF-8')
.send(JSON.stringify(body))
.type('json')
.then(response => {
console.log(response)
})
.catch(error => {
console.log(error)
});
关键是JSON.stringify
你要发送的负载。应该可以。