R httr GET请求400错误GDAX

时间:2017-12-07 21:34:05

标签: r get httr coinbase-api gdax-api

我正在尝试使用R点击 GDAX 并遇到以下问题。如何使用httr来解决问题。

Response [https://api-public.sandbox.gdax.com/accounts]
  Date: 2017-12-07 20:30
  Status: 400
  Content-Type: application/json; charset=utf-8
  Size: 53 B

以下是我的代码。请注意,该问题仅适用于httr包,而不适用于RCurl(附录中提供的代码)

library(digest)
library(httr)
library(RCurl) # for base64Decode

url <- "https://api-public.sandbox.gdax.com/accounts"
secret <- # API secret from GDAX sandbox
api.key <- # API key from GDAX sandbox
passphrase <- # API passphrase from GDAX sandbox

timestamp <- format(as.numeric(Sys.time()), digits=13) # create nonce
key <- base64Decode(secret, mode="raw") # encode api secret
what <- paste0(timestamp, "GET", req.url)
sign <- base64Encode(hmac(key, what, algo="sha256", raw=TRUE))

connector <- list(url = url, nonce = timestamp, signature = sign))

GET(url=connector$url,
  add_headers(
    'CB-ACCESS-KEY'=api.key,
    'CB-ACCESS-SIGN'=connector$signature,
    'CB-ACCESS-TIMESTAMP'=connector$nonce,
    'CB-ACCESS-PASSPHRASE'=passphrase,
    'Content-Type'='application/json'
  )
)

但是,如果我使用RCurl,那么我可以使用以下代码获取回复内容。

httpheader <- list('CB-ACCESS-KEY'=api.key,
  'CB-ACCESS-SIGN'=sign,
  'CB-ACCESS-TIMESTAMP'=timestamp,
  'CB-ACCESS-PASSPHRASE'=passphrase,
  'Content-Type'='application/json')

connector <- list(url = url, header = httpheader)

getURLContent(url = connector$url,
  curl=getCurlHandle(useragent="R"),
  httpheader=connector$header)

2 个答案:

答案 0 :(得分:0)

状态码400表示您发送的是错误请求。必须丢失某些东西或格式错误。这可能是缺少用户代理字符串。

对于每个错误回复,您都会收到一条消息,其中包含您的请求被拒绝的确切说明。阅读回复内容。

答案 1 :(得分:0)

除非恢复沙盒(我没有说明信息),它在2017年初退役,沟通方式很少,至今仍然是我所知道的。我在gdax-java lib。

上记录了这一点