您在预期 JSON 时发送表单数据。改为发送 JSON:使用 JSON.stringify,而不是 querystring.stringify。
但除此之外,您还有一个问题,即您正在发送一个 GraphQL 查询,令人惊讶的是,它也是有效的 JavaScript(至少在语法方面),但一旦发送就不会变成您想要的东西。将 GraphQL 代码括在反引号 ` 中(并删除 :s 并将 = 更改为 :)。
但是,为此使用node-libcurl,更不用说在低级模式下,对于这项任务来说似乎非常复杂且不必要。我建议改用axios 之类的简单方法:
const axios = require('axios')
async function main () {
try {
const result = await axios.post('https://graphigo.prd.dlive.tv/', {
query: `
query {
userByDisplayName(displayname: "POTATO") {
username
displayname
avatar
partnerStatus
followers {
totalCount
}
}
}
`
})
console.log('Result:', result.data)
} catch (e) {
if (e.response) {
console.error('An error occured! Website returned:', e.response.data)
} else {
throw e
}
}
}
// This exists just so that we can use the async function
// without unhandled rejections.
main().catch(e => { console.error(e); process.exit(1) })
查看复制:https://replit.com/@CherryDT/AxiosTest#index.js