【发布时间】:2019-12-23 04:15:22
【问题描述】:
我正在尝试使用 Axios,因为它是 NodeJS 中唯一具有异步/等待功能的模块。
我已经有一个 Python 脚本中的 POST 请求,效果很好,我正在尝试在 NodeJS 服务器上进行调整。
但我阻止了我的第一个帖子请求。 如果我直接使用 Request 模块,效果很好,请参阅我的代码:
console.log("create session");
let data = {'uname': 'login', 'pass': 'password', 'module':'NSUser', 'op':'login','url':'%2Findex.php'}
let url = 'https://localhost:9000/user.php'
let headers = {'Accept': "application/html"}
//s = request.session
body = await request.post({url:url, headers:headers, form:data}, function(error, response, body){
console.log("LOGIN");
console.log(response);
});
使用 Axios(或 Axios 实例,但它是供以后使用的......)因为我需要保持我的会话(就像在 Python 中一样,它就像一个魅力一样工作)。
const config = {
method: 'post',
url: 'https://localhost:9000/user.php',
headers: {'content-type': 'application/x-www-form-urlencoded'},
data: {uname:'login',
pass:'password',
module:'NSUser',
op:'login',
url:'/index.php'}
}
axios(config)
作为响应的正文,它不是连接页面而不是带有请求的代码。
我错了什么? 我尝试用参数替换数据,但它是一样的......
如果需要,我有来自 Firefox 的 CURL 命令。
有关信息,在 python 中:
s = requests.session()
res = s.post(url, headers=headers, data=data)
和我的 s 变量有会话,并且可以请求所有连接。
【问题讨论】:
-
看到这个线程。发送 x-www-form-urlencoded 时需要使用 URLSearchParams:stackoverflow.com/questions/41457181/…
-
同样在
await request()中,await没有任何用处。await只对承诺有用。如果您想要返回承诺的request()版本,请参阅request-promise模块。
标签: javascript node.js request axios