NodeJS - 使用 node-fetch 发送 JSON 对象参数
NodeJS - Send JSON object parameters with node-fetch
我正在尝试通过 GitHub API 创建一个 webhook。 docs 说我需要提供一个 config
参数,它应该是一个对象,但我不确定如何在 URL 参数中发送 JSON .这是我尝试过的:
fetch(`https://api.github.com/repos/${repo.full_name}/hooks?config={"url": "https://webhooks.example.com", "content_type": "json"}`, {
method: "POST",
headers: {
Accept: "application/vnd.github.v3+json",
Authorization: `token ${account.accessToken}`
}
});
和
fetch(`https://api.github.com/repos/${repo.full_name}/hooks?config.url=https://webhooks.example.com&config.content_type=json`, {
method: "POST",
headers: {
Accept: "application/vnd.github.v3+json",
Authorization: `token ${account.accessToken}`
}
});
它们都会导致以下错误:
{
"message": "Validation Failed",
"errors": [
{
"resource": "Hook",
"code": "custom",
"message": "Config must contain URL for webhooks"
}
],
"documentation_url": "https://developer.github.com/v3/repos/hooks/#create-a-hook"
}
如何正确发送 JSON 对象?我正在寻找使用 node-fetch
的解决方案
当您执行 post 请求时,这意味着将有一个有效载荷,并且您正在使用的库需要一个包含您的有效载荷的 body
属性。
所以只需添加
fetch('https://api.github.com/repos/${repo.full_name}/hooks', {
method: "POST",
headers: {
Accept: "application/vnd.github.v3+json",
Authorization: `token ${account.accessToken}`
},
body:JSON.stringify(yourJSON) //here this is how you send your datas
});
并且 node-fetch
会将您的 body 与您的请求一起发送。
如果您想了解更多详细信息,我会展开我的回答
https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods 此处用于快速描述不同的 http 请求类型(动词)
我正在尝试通过 GitHub API 创建一个 webhook。 docs 说我需要提供一个 config
参数,它应该是一个对象,但我不确定如何在 URL 参数中发送 JSON .这是我尝试过的:
fetch(`https://api.github.com/repos/${repo.full_name}/hooks?config={"url": "https://webhooks.example.com", "content_type": "json"}`, {
method: "POST",
headers: {
Accept: "application/vnd.github.v3+json",
Authorization: `token ${account.accessToken}`
}
});
和
fetch(`https://api.github.com/repos/${repo.full_name}/hooks?config.url=https://webhooks.example.com&config.content_type=json`, {
method: "POST",
headers: {
Accept: "application/vnd.github.v3+json",
Authorization: `token ${account.accessToken}`
}
});
它们都会导致以下错误:
{
"message": "Validation Failed",
"errors": [
{
"resource": "Hook",
"code": "custom",
"message": "Config must contain URL for webhooks"
}
],
"documentation_url": "https://developer.github.com/v3/repos/hooks/#create-a-hook"
}
如何正确发送 JSON 对象?我正在寻找使用 node-fetch
当您执行 post 请求时,这意味着将有一个有效载荷,并且您正在使用的库需要一个包含您的有效载荷的 body
属性。
所以只需添加
fetch('https://api.github.com/repos/${repo.full_name}/hooks', {
method: "POST",
headers: {
Accept: "application/vnd.github.v3+json",
Authorization: `token ${account.accessToken}`
},
body:JSON.stringify(yourJSON) //here this is how you send your datas
});
并且 node-fetch
会将您的 body 与您的请求一起发送。
如果您想了解更多详细信息,我会展开我的回答
https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods 此处用于快速描述不同的 http 请求类型(动词)