Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/403.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 获取一个正常工作的http get请求(第三方api)并改用fetch,但签名不匹配_Javascript_Node.js_Api - Fatal编程技术网

Javascript 获取一个正常工作的http get请求(第三方api)并改用fetch,但签名不匹配

Javascript 获取一个正常工作的http get请求(第三方api)并改用fetch,但签名不匹配,javascript,node.js,api,Javascript,Node.js,Api,我试图接受一个正常工作的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]");

我试图接受一个正常工作的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的使用,但它是如何在我使用的平台上获得正确的输出。

fetch是一种浏览器API。 如果要在节点中使用它,请尝试以下操作: Fetch是一种浏览器API。 如果要在节点中使用它,请尝试以下操作:

node.js没有内置的
fetch
lib,如果您想使用它,可以使用


或者您也可以使用,这一个非常流行。

node.js没有内置的
fetch
lib,如果您想使用它,可以使用


或者你也可以用,这个很流行。

我使用请求承诺npm而不是fetch解决了我的问题

我使用请求承诺npm而不是fetch解决了我的问题

我使用节点fetch我使用节点fetch我使用节点fetch我使用节点fetch我使用请求承诺npm而不是fetch解决了我的问题我使用请求承诺npm而不是获取