2017-11-06 16 views
-2

私はそれが彼らのGETリクエストのために働くhitbtc APIの呼び出し元を作成するどのように私はこのhitbtcコードを変更するのですか?

Protected Overrides Function getJsonPrivate(method As String, otherParameters() As Tuple(Of String, String)) As String 
    Dim content = "/api/1/trading/" + method + "?nonce=" + ExchangesClass.getNonce().ToString + "&apikey=" + _apiKey1 
    Dim postar = otherParameters.ToList.ConvertAll(Function(x) x.Item1 + "=" + x.Item2) 
    Dim post = String.Join("&", postar) ' "id=4987469178" 
    Dim sighash = computeSig(content) '"https://api.hitbtc.com/api/1/trading/cancel_order?nonce=36411402&apikey=13a2492a3f0631d657ecd510ceacc509" 
    Dim url = "https://api.hitbtc.com" + content 
    Dim response = CookieAwareWebClient.downloadString1(url, post, {Tuple.Create("X-Signature", sighash)}) 
    'Dim response1 = CookieAwareWebClient.downloadString1("https://api.hitbtc.com" + content + "&" + post, "", {Tuple.Create("X-Signature", sighash)}) 

    Return response 
End Function 

を管理していました。私はバランスを取ることができます。私は積極的な注文を得ることができます。しかし、注文をキャンセルするには、例えば、私はポストリクエストが必要です。

例えば、 _jsonResult = getJsonPrivate( "バランス"、{})

を行うとうまく働くだろうと私はなるだろう:

"{""balance"":[{""currency_code"":""1ST"",""cash"":""0"",""reserved"":""0""},{""currency_code"":""8BT"",""cash"":""0"",""reserved"":""0""},{""currency_code"":""ADX"",""cash"":""0"",""reserved"":""0""},{""currency_code"":""AE"",""cash"":""0"",""reserved"":""0""},{""currency_code"":""AEON"",""cash"":""0"",""reserved"":""0""},{""currency_code"":""AIR"",""cash"":""0"",""reserved"":""0""},{""currency_code"":""AMB"",""cash"":""0"",""reserved"":""0""},{""currency_code"":""AMP"",""cash"":""0"",""reserved"":""0""}, 

応答は、単にゼロにつながります。

私はここ

https://gist.github.com/hitbtc-com/10885873

それはまだおかしいここ

https://github.com/hitbtc-com/hitbtc-api/blob/master/APIv1.md#examples

そして、PHPのサンプルをPHPのコードサンプルを見てみました。

私もURIに追加ポスト要求に基づいてcomputeSigことになっているだろうか?無根底にある&

とのだれでもC#またはvb.netサンプルを持っていますか?私は以下の通りである私が行うことができますので、それはcancel_orderメソッドのコードに一つだけの小さな変更を必要とすると思うだけではなくdownloadstring1の

コンテンツを取得します。だから、基本的に投稿をするか、post引数が空文字列かどうかに基づいて取得します。私はそれがかなり明らかだと思います。

Public Shared Function downloadString1(url As String, post As String, otherHeaders As Tuple(Of String, String)()) As String 
     Dim wc = New CookieAwareWebClient() 
     For Each oh In otherHeaders 
      wc.Headers.Add(oh.Item1, oh.Item2) 
     Next 

     Dim response = String.Empty 

     Try 
      If post = "" Then 
       response = wc.DownloadString(url) 
      Else 
       response = wc.UploadString(url, post) 
      End If 
     Catch ex As Exception 
      Dim a = 1 
     End Try 

     Return response 
    End Function 
+1

この – BugFinder

+0

https://stackoverflow.com/questions/5401501/how-to-post-data-to-specific-url-using-webclient-in-c-sharp番組関連していないのC#でありますWebクライアントを使ってC#に投稿する方法。私はVB.netが同じであると仮定しています(つまり、DownloadStringの代わりにUploadStringを使用します)。 – apokryfos

+0

これはC#に関連しています。なぜなら、誰かがvb.netを知っているとは思わないからです。だから、私はC#サンプルまたはvb.netサンプルが必要です。 Vb.netは最高ですが、C#はそうではありません。私はすでにアップロード文字列を使用しています。 –

答えて

0

署名

を計算するときに、私が必要となる唯一の変更は、私が

Dim sighash = computeSig(content + post) 

にこの

Dim sighash = computeSig(content) 

を変更後のメッセージを含めることがある今、私の代わりにこのメッセージが表示されました

"{""CancelReject"":{""rejectReasonCode"":""orderNotFound""}}" 

私はちょうど空の文字列を持って前に(問題となっています。別の質問になります

更新:

ああ、私はclientOrderIdではなく、IDや注文IDを使用する必要があります。いくつかの最小限の文書。

これを代わりに取得しました

?応答

"{""ExecutionReport"":{""orderId"":""4987469178"",""latestOrderId"":""4987469178"",""clientOrderId"":""2c90f00aee8e4d21b0cd83d421297c9a"",""orderStatus"":""canceled"",""userId"":""user_319564"",""symbol"":""UGTBTC"",""side"":""buy"",""price"":""0.000018"",""quantity"":111,""type"":""limit"",""timeInForce"":""GTC"",""lastQuantity"":0,""lastPrice"":"""",""leavesQuantity"":0,""cumQuantity"":0,""averagePrice"":""0"",""created"":1509439576948,""execReportType"":""canceled"",""timestamp"":1509962441283}}"

0

あなたがcreate an account on Hitbtc、およびcreate API keyを持っている、とPlace/cancel ordersアクセス権を追加したら、あなたはDELETE要求(ないPOST、ないGETで注文をキャンセルすることがあり、それはDELETEです):

DELETE /api/2/order/{clientOrderId} 

リクエストは次のようになります(カール付き):

0123あなたのソースコードから
curl -X DELETE -u "ff20f250a7b3a414781d1abe11cd8cee:fb453577d11294359058a9ae13c94713" \ 
"https://api.hitbtc.com/api/2/order/d8574207d9e3b16a4a5511753eeef175" 

、私は(/ API/1 /取引)あなたはAPIのV1エンドポイントを使用していることがわかりますが、API V1は時代遅れであり、それは、スイッチに優れていることをご検討くださいAPI V2

最後にofficial Hitbtc API documentationを参照してください。

注文がまだキャンセルされていないことを再度確認することがありますか?

よろしく

関連する問題