java - Bitstamp API:始终接收 API0000(缺少密钥、签名和随机数参数。)
问题描述
研究这个 SO 问题(Authenticated Java Jersey REST call to Bitstamp),我发现 OP 也有类似的问题。不幸的是,我无法在我自己的实现中进行调用:我尝试通过查询参数key
以及在请求正文中格式化的 json 来发送。我记录了标题和内容,所以在这两种情况下,这些是生成的日志:nonce
signature
// send in body
---> POST https://www.bitstamp.net/api/v2/balance/ HTTP/1.1
Accept: application/json;charset=UTF-8
Content-Type: application/json;charset=UTF-8
Content-Length: 140
{"key":"12345678901234567890123456789012","nonce":1234567890,"signature":"1234567890123456789012345678901234567890123456789012345678901234"}
---> END HTTP (140-byte body)
<--- HTTP/1.1 403 Authentication Failed (49ms)
{"status": "error", "reason": "Missing key, signature and nonce parameters.", "code": "API0000"}
<--- END HTTP (96-byte body)
// send as query-parameters
---> POST https://www.bitstamp.net/api/v2/balance/?key=12345678901234567890123456789012&signature=1234567890123456789012345678901234567890123456789012345678901234&nonce=1234567890 HTTP/1.1
Accept: application/json;charset=UTF-8
Content-Type: application/x-www-form-urlencoded
---> END HTTP (0-byte body)
<--- HTTP/1.1 403 Authentication Failed (45ms)
{"status": "error", "reason": "Missing key, signature and nonce parameters.", "code": "API0000"}
<--- END HTTP (96-byte body)
我究竟做错了什么?当它声明时,bitstamp 是什么意思
要成功进行身份验证,您需要提供 API 密钥、签名和 nonce 参数。( https://www.bitstamp.net/api/ )
我使用 Feign 作为 REST 客户端。这两种方法如下所示:
@PostMapping(value = "api/v2/balance/", produces = MediaType.APPLICATION_JSON_UTF8_VALUE, consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE)
ResponseEntity<Map<String, Object>> getAccountBalanceQuery(@RequestParam("key") String key,
@RequestParam("signature") String signature,
@RequestParam("nonce") Integer nonce);
@PostMapping(value = "api/v2/balance/", produces = MediaType.APPLICATION_JSON_UTF8_VALUE, consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
ResponseEntity<Map<String, Object>> getAccountBalanceBody(@RequestBody BitstampAuth body);
谢谢!
解决方案
推荐阅读
- machine-learning - 使用 talos 进行网格搜索:传递输入列表错误
- mqtt - 大型发布客户应该如何处理多个代理?
- android - Android Room:DAO 大于 1048576
- php - 如果我添加一个 'WHERE x = ',为什么 fetch_assoc() 返回 NULL?这个 MySQL 查询中的子句?
- gnu-parallel - GNU Parallel:如何将作业 ID 传递给命令
- c - 当第一个指针被释放时,指向另一个指针的指针会发生什么?
- r - 向数据框添加其他标头
- linq - 解析来自数据库 LINQ 的结果
- python - 为什么我找不到 lsvirtualenv 命令?
- anylogic - SelectOutput 基于条件(自定义分布)