用nodejs向优图api发送请求时老是返回403或者401

如图我在headers里面加了Authorization,还是提示最下面的
1,这个API要求这些headers api文档
2,nodejs中文文档可以加这个头部信息,也可以加auth的参数,都试了
3,不知道是不是我设置的方式错误了
4,优图官方nodejs-sdk中有个请求函数就是这样写的

clipboard.png

nodejs,http.request
clipboard.png
我的代码

 const postData =JSON.stringify({
        "app_id":"10117456",
        "img_data": img,
        "rsp_img_type": "url",
        "opdata":[{
            "cmd":"doFaceMerge",
            "params":{
                "model_id": "cf_lover_fanli"
            }
        }]
    });
    var time=new Date();

    var zation='u='+userid+'&a='+appid+'&k='+secretId+'&e=1617479078&'+'t='+Math.floor(time.getTime()/1000)+'&r='+Math.floor(Math.random()*10000000)+'&f='
    var datax = new Buffer(zation,'utf8');
    var resx = crypto.createHmac('sha1',secretKey).update(datax).digest();
    var bin = Buffer.concat([resx,datax]);
    var sign = bin.toString('base64');
    //console.log(sign);
    var headers={
        "Authorization":sign,
        "Content-Length": postData.length,
        "Content-Type": "text/json",
    }
    const options={
        hostname:"api.youtu.qq.com",
        path:"/cgi-bin/pitu_open_access_for_youtu.fcg",
        method:"POST",
        "headers":headers
    };
const req = http.request(options, (res) => {
        console.log(`状态码: ${res.statusCode}`);
    console.log(`响应头: ${JSON.stringify(res.headers)}`);
    res.setEncoding('utf8');
    res.on('data', (chunk) => {
        console.log(`响应主体: ${chunk}`);
});
    res.on('end', () => {
        console.log('响应中已无数据。');
});
});

    req.on('error', (e) => {
        console.log('请求错误'+e);
});

    req.write(postData);
    req.end();
}

响应信息

响应头: {"date":"Fri, 02 Feb 2018 03:33:53 GMT","content-type":"text/html","content-length":"201","connection":"close","server":"openresty/1.9.15.1","acc
ess-control-allow-origin":"*","access-control-allow-headers":"Authorization,Content-Type,Accept,Origin,User-Agent,DNT,Cache-Control,X-Mx-ReqToken,Keep-Al
ive,X-Requested-With,If-Modified-Since","access-control-allow-methods":"GET,POST,OPTIONS","access-control-allow-credentials":"true"}
响应主体: <html>
<head><title>401 Authorization Required</title></head>
<body bgcolor="white">
<center><h1>401 Authorization Required</h1></center>
<hr><center>openresty/1.9.15.1</center>
</body>
</html>

响应中已无数据。
阅读 4.9k
1 个回答

遇到一样的问题 不知道怎么解决 楼主搞定了吗

换个模版ID
然后header改的这个 就成了
'Content-Type': 'application/json',

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题