我正在用Postman测试Coinbase API端点,挑战是当我需要分页时
为了安装邮递员,我遵循了可用的这里指南,并总结如下:
// 1.导入密码-js库var CryptoJS =CryptoJS=require(“CryptoJS”);// 2.创建JSON请求对象var req ={time戳: Math.floor(Date.now() / 1000),//秒自Unix时代方法: pm.request.method,path: pm.request.url.getPath(),body:‘,’,//空用于GET请求消息:未定义,机密:从集合变量hmac中获得的值:未定义,签名:未定义,};// 3.创建要签名的消息req.message = req.timestamp + req.method + req.path + req.body;// 4.使用message和API secret req.hmac = CryptoJS.HmacSHA256(req.message,req.secret)创建HMAC;// 5.通过将HMAC转换为十六进制字符串req.signature =req.hmac.toString(CryptoJS.enc.Hex)获得签名;// 6.记录请求console.info(“请求:",req);// 7.为Coinbase REST调用pm.collectionVariables.set("coinbase-api-timestamp",req.timestamp设置邮递员请求的身份验证头;pm.collectionVariables.set("coinbase-api-signature",req.signature);
对于一个简单的请求,所有这些都很有效,例如:
获取{coinbase-api-base}/v2/帐户
然后,如果我添加主体请求参数(如解释的这里):
limit=50
若要更改默认分页,我将得到一个身份验证错误.
“错误”:[{ "id":"authentication_error", “电文”:“无效签名” }
问题:
我怎么才能修好它?
请求的主体如何处理请求签名.
任何帮助建议都是非常感谢的。
谢谢
发布于 2021-12-01 19:38:20
您不能向请求的主体添加限制,GET请求永远不包括任何主体。
您应该将其添加为查询字符串参数,如(这只是一个示例):
GET {{coinbase-api-base}}/v2/accounts?limit=50 https://stackoverflow.com/questions/70189447
复制相似问题