2017-12-07 19 views
0

私はRを使用して、次の問題を取得GDAXをヒットしようとしています。 httrを使用して問題を解決するにはどうすればよいですか。R HTTR GETリクエスト400エラーGDAX

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 

以下は私のコードです。しかし、私は、私は次のコードを使用して応答内容を取得することができています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(付録に提供されているコード)とhttrパッケージとないと存在していることに注意してください。

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) 
+1

両方のコードセットを使用してhttps://requestb.in/のようなサイトを指し示すようにしてください。実際に何がサーバーに送信されているのか分かります。 – MrFlick

+0

'base64Decode'関数はどこから来ますか? – MrFlick

+0

'RCurl'だが、それは良い出てくる。私はそれが「ダイジェスト」機能であったという印象を受けました。 'httr'を使用して接続が確立されたら、これに取り組む必要があります。 – Drj

答えて

0

サンドボックスが復活していない限り(私は情報はありませんでした)、2017年初頭に通信の途中で廃止されましたが、私が知っている限りこの日付まではまだダウンしています。私はこれをgdax-java libに文書化しました。

+0

意味があります。私はGDAXで動作するようにコードを取得できましたが、サンドボックスでは動作しませんでした。 – Drj

0

ステータスコード400は、不正なリクエストを送信していることを意味します。何かが欠落しているか、間違った形式である必要があります。これはユーザーエージェントの文字列が失われている可能性があります。

すべてのエラー応答に対して、要求が拒否された理由を正確に記述したメッセージが表示されます。あなたの応答の内容を読んでください。

関連する問題