gpt4 book ai didi

node.js - 在nodejs中将curl命令转换为request-promise命令时遇到问题

转载 作者:太空宇宙 更新时间:2023-11-04 00:26:07 26 4
gpt4 key购买 nike

所以我知道这个curl命令确实有效。当我运行它时,我得到了登录后应该出现的 html 文档:

curl 'https://login.url' 
-H 'Pragma: no-cache'
-H 'Origin: https://blah'
-H 'Accept-Encoding: gzip, deflate, br'
-H 'Accept-Language: en-US,en;q=0.8'
-H 'Upgrade-Insecure-Requests: 1'
-H 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.76 Safari/537.36'
-H 'Content-Type: application/x-www-form-urlencoded'
-H 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8'
-H 'Cache-Control: no-cache'
-H 'Referer: https://blash.jsp'
-H 'Connection: keep-alive'
--data 'Username=mary&Password=<PASSWORD>&Go=Login&Action=Srh-1-1' --compressed ;

这是我将其转换为 Node 请求 promise 的尝试。当我运行它时,我得到一些奇怪的字符。

var url = 'https://login.url';

var headers = {
'Pragma': 'no-cache',
'Origin': 'https://blah',
'Accept-Encoding': 'gzip, deflate, br',
'Accept-Language': 'en-US,en;q=0.8',
'Upgrade-Insecure-Requests': '1',
'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.76 Safari/537.36',
'Content-Type': 'application/x-www-form-urlencoded',
'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
'Cache-Control': 'no-cache',
'Referer': 'https://blash.jsp',
'Connection': 'keep-alive',
}

var data = {
'Username':'mary',
'Password':'<Password>',
'Go':'Login',
'Action':'Srh-1-1'
}

var html = yield request.post({url:url,form:data,headers:headers});

这是奇怪字符的示例:

�X}o�6����4\��b�N��%

我做错了什么?

最佳答案

您需要通过将 gzip 选项设置为 true 来告诉 request 您接受压缩。

请注意,根据获取数据的方式/位置,您可能会得到压缩或未压缩的响应。检查documentation for request了解详细信息(在页面上搜索“compr”)。

关于node.js - 在nodejs中将curl命令转换为request-promise命令时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42728499/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com