我在javascript(节点)处有以下代码,并希望将其转换为curl
const body = {
'Email': "my email:)",
'EncryptedPasswd': "my encrypted pass",
'service': 'androidmarket',
'accountType': 'HOSTED_OR_GOOGLE',
'has_permission': '1',
'source': 'android',
'androidId': "my id",
'app': 'com.android.vending',
'device_country': 'us',
'operatorCountry': 'us',
'lang': 'en_US',
'sdk_version': '23'
};
return _request.postAsync({url: _opts.loginUrl, gzip: true, json: false, form: body})
.spread(function (res, body) {
if (res.statusCode !== 200) {
throw new LoginError(body);
}
assert(res.statusCode === 200, 'login failed');
assert(res.headers['content-type'] === 'text/plain; charset=utf-8', 'utf8 string body');
const response = responseToObj(body);
if (!response || !response.auth) {
throw new Error('expected auth in server response');
}
// set the auth token member to the response token.
_opts.authToken = response.auth;
return response.auth;
});
我的curl请求:
curl --data "Email==myemail&EncryptedPasswd=mypass&has_permission=1&accountType=HOSTED_OR_GOOGLE&add_account=1&service=androidmarket&has_permission=1&source=android&device_country=us&lang=en_US&sdk_version=23&androidId=3c816e5b68106eb2&app=com.android.vending&operatorCountry=us" https://android.clients.google.com/auth
我多次尝试运行javascript脚本并且始终有效。我看不出这些脚本之间的任何区别,但js代码有效,curl不是
答案 0 :(得分:1)
根据您的JavaScript,这是.x
请求,您尚未在curl命令中指定。
paste2 <- function(x, y, sep = ".") paste(x, y, sep = sep)
library(purrr)
letters[1:4] %>%
{map_chr(
.x = 2:length(.),
.f = function(index) reduce2(
.x = .[1:index],
.y = c("-", ".", "-")[1:(index - 1)],
.f = paste2
)
)}
#> [1] "a-b" "a-b.c" "a-b.c-d"
以下是语法:
POST
答案 1 :(得分:0)
为了便于阅读,我将每个字段放在一个单独的行上。你需要一个斜杠来分隔每一行。
在问题中,您有两个相同的电子邮件标记(Email==myemail
)。可能是吗?还要将这些字段分开,并将它们放在与JavaScript字段相同的顺序中,这可以帮助您比较两个列表并确保它们确实相等。
curl --data "Email=myemail" \
--data "EncryptedPasswd=mypass" \
--data "has_permission=1" \
--data "accountType=HOSTED_OR_GOOGLE" \
--data "add_account=1" \
--data "service=androidmarket" \
--data "has_permission=1" \
--data "source=android" \
--data "device_country=us" \
--data "lang=en_US" \
--data "sdk_version=23" \
--data "androidId=3c816e5b68106eb2" \
--data "app=com.android.vending" \
--data "operatorCountry=us" \
https://android.clients.google.com/auth