如图我在headers里面加了Authorization,还是提示最下面的
1,这个API要求这些headers api文档
2,nodejs中文文档可以加这个头部信息,也可以加auth的参数,都试了
3,不知道是不是我设置的方式错误了
4,优图官方nodejs-sdk中有个请求函数就是这样写的
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>
响应中已无数据。
遇到一样的问题 不知道怎么解决 楼主搞定了吗
换个模版ID
然后header改的这个 就成了
'Content-Type': 'application/json',