这可能是我忽略的一些愚蠢的事情,但我正在尝试使用request-promise-native
POST 到表单,并且我得到的响应看起来像我发送的表单数据是空白的。
示例:这适用于标准request
:
const request = require('request');
request.post({
url:'http://tycho.usno.navy.mil/cgi-bin/sidereal2-post.sh',
form: {
city: 'Santa Cruz',
state: 'CA'
}
},
function(err,httpResponse,body){
if (err) {
return console.log("Error: " + err);
}
console.log("got: " + body);
});
正确产生:
<html>
<title>Local Apparent Sideral Time </title>
<body>
<center>
<HR><h1>Local Apparent Sidereal Time</h1><HR>
<TABLE BORDER=4 ALIGN=CENTER VALIGN=CENTER CELLPADDING=5>
<TR><TH> SANTA CRUZ , CA</TH>
<TR><TH> Longitude -122.04 degrees </TH>
<TR><TD ALIGN=CENTER><H1> 02:56 LST </H1></TD>
</TABLE>
</center>
</body>
</html>
但是这段代码
const rp = require('request-promise-native');
const options = {
method: 'POST',
uri: 'http://tycho.usno.navy.mil/cgi-bin/sidereal2-post.sh',
formData: {
city: 'Santa Cruz',
state: 'CA'
},
};
rp(options)
.then(function (body) {
// POST succeeded
console.log("got: "
+ body);
})
.catch(function (err) {
// POST failed...
console.log("ERROR: " + err);
});
产生这个结果,就好像它没有得到 formData:
<html>
<title>Local Apparent Sideral Time </title>
<body>
<center>
<HR><h1>Local Apparent Sidereal Time</h1><HR>
<HR><h1>Coordinates for , FO not found</h1><HR>
</center>
</body>
</html>
我是否忘记了括号或标点符号之类的?在我看来,这与request-promise 文档中的示例相同。