过去,我使用一些php代码查询这样的api
$str = file_get_contents('https://bla:bla@bla.com/rest/api/content/2950446?expand=body.storage');
$jsonObj = json_decode($str, true);
现在我想使用nodejs来构建alexa技能
我对此进行了测试
var session_url = 'https://bla.com/rest/api/content/2950446';
const fetchQuotes = async () => {
try {
const { data } = await axios.post(session_url, {}, {
auth: {
username: 'bla',
password: 'bla'
}});
return data;
} catch (error) {
console.error('cannot fetch quotes', error);
}
};
根据我的理解,应该这样做。是这样吗?该URL被调用,但是出现身份验证错误...
答案 0 :(得分:1)
致电data
时,您将options
放在axios.post
字段中。您的数据必须是axios.post
的第二个参数,而不是第三个。
执行axios.post(url, {}, { somethingHere }
时,您的data
等于{}
(空对象)。您应该改用axios.post(url, { somethingHere }, { config }
,而config
部分是可选的。
const fetchQuotes = async () => {
try {
const { data } = await axios.post(session_url, {
auth: {
username: 'bla',
password: 'bla'
}});
return data;
} catch (error) {
console.error('cannot fetch quotes', error);
}
};