0

我正在尝试使用GDAXR并遇到以下问题。如何使用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)
4

2 回答 2

0

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

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

于 2017-12-10T22:33:17.740 回答
0

除非沙箱被恢复(我没有信息可以说是),否则它在 2017 年初退役,几乎没有通信方式,据我所知,到目前为止仍然如此。我在gdax-java库中记录了这一点。

于 2018-01-22T16:00:21.377 回答