我正在尝试接收一个有效的http get请求并改用fetch,但返回错误,表明使用fetch时签名与第三方api不匹配。
原版的:
var secret = 'HIDDEN'
var id = 'HIDDEN'
const params = 'action=results&zip=' + zip + '&miles=' + mile
var timestamp = moment.utc().format("ddd, D MMM YYYY HH:mm:00 [GMT]");
var signature = timestamp + secret + params + id
var sha = CryptoJS.algo.SHA256.create();
sha.update(signature);
var encrypt = sha.finalize();
return http.get({
host: 'www.vtinfo.com',
path: '/PF/product_finder-service.asp?' + params,
headers: {
'vipCustID': id,
'vipTimestamp': timestamp,
'vipSignature': encrypt
}
})
尝试使用提取:
const fetch = require('node-fetch');
var secret = 'HIDDEN'
var id = 'HIDDEN'
const params = 'action=results&zip=' + zip + '&miles=' + mile
var timestamp = moment.utc().format("ddd, D MMM YYYY HH:mm:00 [GMT]");
var signature = timestamp + secret + params + id
var sha = CryptoJS.algo.SHA256.create();
sha.update(signature);
var encrypt = sha.finalize();
return fetch('https://www.vtinfo.com/PF/product_finder-service.asp?' + params, {
method: 'GET',
headers: {
'vipCustID': id,
'vipTimestamp': timestamp,
'vipSignature': encrypt
}
})
我对使用fetch不太熟悉,但是它如何在正在使用的平台上获得正确的输出。
我通过使用request-promise npm而不是fetch解决了我的问题
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句