nodeJS 请求库:使用代理键而不是 URL 发出 POST 请求
nodeJS request library: making POST request with surrogate key instead of URL
我正在尝试使用 nodeJS 请求库发出 POST 请求以清除与某个 surrogate key via Fastly API 关联的内容。 POST 请求看起来像这样:
POST /service/SU1Z0isxPaozGVKXdv0eY/purge
Content-Type: application/json
Accept: application/json
Fastly-Key: YOUR_FASTLY_TOKEN
Fastly-Soft-Purge: 1
Surrogate-Key: key_1 key_2 key_3
我尝试用 node.JS 两种不同的方式来做到这一点。
第一个:
// perform request to purge
request({
method: `POST`,
url: `/service/${fastly_service_id}/purge${surrogateKeyArray[i]}`,
headers: headers,
}, function(err, response, body) {
// url was not valid to purge
if (err) {
console.log("is there an err???")
console.log(err)
}
})
}
我明白了,Error: Invalid URI: /service/<fastly_Service_id>/purge/<surrogate_key>
我通过 curl -s -I -H "Fastly-Debug: 1" <URL corresponding to surrogate key> | grep surrogate-key
仔细检查了我的代理键
它 returns 与我的代码中使用的代理键相同。
在第二次尝试中,我尝试了:
// perform request to purge
request({
method: `POST /service/${fastly_service_id}/purge${surrogateKeyArray[i]}`,
headers: headers,
}, function(err, response, body) {
// url was not valid to purge
if (err) {
console.log("is there an err???")
console.log(err)
}
})
}
我收到错误,Error: options.uri is a required argument
我不熟悉节点和成功发出 HTTP 请求所涉及的代码,但从我所看到的你提供的代码来看,错误似乎与你没有提供完全限定域(例如,您在路径前缺少 https://api.fastly.com
)。
当然,除非这是在您的代码中的其他地方配置的,而且它在这里不可见。
还要确保在 /purge
和 ${surrogateKeyArray[i]}
之间包含一个 /
分隔符(我在下面的示例代码中展示了它)。
考虑到这一点,我建议尝试:
request({
method: `POST`,
url: `https://api.fastly.com/service/${fastly_service_id}/purge/${surrogateKeyArray[i]}`,
headers: headers,
}, function(err, response, body) {
if (err) {
console.log(err)
}
})
}
我正在尝试使用 nodeJS 请求库发出 POST 请求以清除与某个 surrogate key via Fastly API 关联的内容。 POST 请求看起来像这样:
POST /service/SU1Z0isxPaozGVKXdv0eY/purge
Content-Type: application/json
Accept: application/json
Fastly-Key: YOUR_FASTLY_TOKEN
Fastly-Soft-Purge: 1
Surrogate-Key: key_1 key_2 key_3
我尝试用 node.JS 两种不同的方式来做到这一点。
第一个:
// perform request to purge
request({
method: `POST`,
url: `/service/${fastly_service_id}/purge${surrogateKeyArray[i]}`,
headers: headers,
}, function(err, response, body) {
// url was not valid to purge
if (err) {
console.log("is there an err???")
console.log(err)
}
})
}
我明白了,Error: Invalid URI: /service/<fastly_Service_id>/purge/<surrogate_key>
我通过 curl -s -I -H "Fastly-Debug: 1" <URL corresponding to surrogate key> | grep surrogate-key
它 returns 与我的代码中使用的代理键相同。
在第二次尝试中,我尝试了:
// perform request to purge
request({
method: `POST /service/${fastly_service_id}/purge${surrogateKeyArray[i]}`,
headers: headers,
}, function(err, response, body) {
// url was not valid to purge
if (err) {
console.log("is there an err???")
console.log(err)
}
})
}
我收到错误,Error: options.uri is a required argument
我不熟悉节点和成功发出 HTTP 请求所涉及的代码,但从我所看到的你提供的代码来看,错误似乎与你没有提供完全限定域(例如,您在路径前缺少 https://api.fastly.com
)。
当然,除非这是在您的代码中的其他地方配置的,而且它在这里不可见。
还要确保在 /purge
和 ${surrogateKeyArray[i]}
之间包含一个 /
分隔符(我在下面的示例代码中展示了它)。
考虑到这一点,我建议尝试:
request({
method: `POST`,
url: `https://api.fastly.com/service/${fastly_service_id}/purge/${surrogateKeyArray[i]}`,
headers: headers,
}, function(err, response, body) {
if (err) {
console.log(err)
}
})
}