Content-type: 'application/x-www-form-urlencoded'
を使用してnode.jsにデータを投稿する際に問題が発生しました
var loginArgs = {
data: 'username="xyzzzzz"&"password="abc12345#"',
//data: {
// 'username': "xyzzzzz",
// 'password': "abc12345#",
//},
headers: {
'User-Agent': 'MYAPI',
'Accept': 'application/json',
'Content-Type':'application/x-www-form-urlencoded'
}
};
そして投稿リクエストは:
client.post("http:/url/rest/login", loginArgs, function(data, response){
console.log(loginArgs);
if (response.statusCode == 200) {
console.log('succesfully logged in, session:', data.msg);
}
常にsername/passwordが正しくありません。
残りのAPIでは、リクエストの本文は次のようになっている必要があります。
username='provide user name in url encoded
format'&password= "provide password in url encoded format'
request
は、application/x-www-form-urlencoded
およびmultipart/form-data
フォームのアップロードをサポートしています。 multipart/related
については、マルチパートAPIを参照してください。
application/x-www-form-urlencoded(URLエンコードされたフォーム)
URLエンコードされたフォームは単純です:
const request = require('request');
request.post('http:/url/rest/login', {
form: {
username: 'xyzzzzz',
password: 'abc12345#'
}
})
// or
request.post('http:/url/rest/login').form({
username: 'xyzzzzz',
password: 'abc12345#'
})
// or
request.post({
url: 'http:/url/rest/login',
form: {
username: 'xyzzzzz',
password: 'abc12345#'
}
}, function (err, httpResponse, body) { /* ... */ })
参照: https://github.com/request/request#forms
または、request-promise
を使用します
const rp = require('request-promise');
rp.post('http:/url/rest/login', {
form: {
username: 'xyzzzzz',
password: 'abc12345#'
}
}).then(...);
参照: https://github.com/request/request-promise#api-in-detail