2017-09-22 29 views
0

它被称为与Bitfinex.QueryPrivate(“订单”) 我已经尝试过没有序列化正文,并与串行化签名和随机数 - 每次500响应错误。我正尝试使用签名密钥连接到Bitfinex API v2。我得到的是响应错误500

我已经为此付出了多日的努力,并会很感激任何帮助。

Imports Microsoft.VisualBasic 
Imports System.Net 
Imports Newtonsoft.Json.Linq 
Imports System.Security.Cryptography 

'Gets API data 
Public Class Bitfinex 
    'Read only keys 
    Private Shared Key As String = "MvHLTsSApwqnSKXYIGvnWWOC8koPoJDxXBoWCj2bZ0g" 
    Private Shared SecretKey As String = "MyPrivateKey" 
    Private Shared Version As String = "v2" 
    Private Shared Url As String = "https://api.bitfinex.com/" 

    Public Shared Function QueryPrivate(Method As String) As String 
     Dim Body = "" 
     Dim JsonBody = Newtonsoft.Json.JsonConvert.SerializeObject(Body) 
     Dim Nonce As String = ((Date.UtcNow - New DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc)).TotalMilliseconds).ToString 
     Dim Path As String = String.Format("{0}/auth/r/{1}", Version, Method) 
     Dim Address As String = Url & Path 

     Dim SignatureString As String = "/api/" & Path & Nonce & JsonBody 
     Dim Signature = GetSignature(SignatureString, SecretKey) 

     Try 
      Dim wc As New WebClient() 
      wc.Headers.Add("bfx-nonce", Nonce) 
      wc.Headers.Add("bfx-apikey", Key) 
      wc.Headers.Add("bfx-signature", Signature) 
      wc.Headers.Add("content-type", "application/json") 
      'wc.Headers.Add("User-Agent", "My Bitfinex agent") 
      Return wc.UploadString(Address, JsonBody) 
     Catch ex As Exception 
      Return "0" 
     End Try 
     Return "" 
    End Function 

    Private Shared Function GetSignature(SignatureString As String, SecretKey As String) As String 
     Dim SecretKeyBytes = Encoding.UTF8.GetBytes(SecretKey) 

     Using myHMAC As New HMACSHA384(SecretKeyBytes) 
      Dim SignatureBytes As Byte() = Encoding.UTF8.GetBytes(SignatureString) 
      Dim SignatureHash = myHMAC.ComputeHash(SignatureBytes) 
      Return System.BitConverter.ToString(SignatureHash).ToLower().Replace("-", String.Empty) 
     End Using 
    End Function 
End Class 
+3

[** HTTP status code 500 **](https://en.wikipedia.org/wiki/List_of_HTTP_status_codes)被称为_Internal Server Error_,这是服务器端的错误。除了联系他们的支持,我认为除了联系他们的支持之外,你不能做任何事情。 –

+0

Infact你甚至可能想在他们的[** GitHub页面**](https://github.com/bitfinexcom/bitfinex-api-node/issues)上提出这个问题。这会让你直接与开发人员联系,他们应该能够看到你是否做错了什么,或者如果问题出在他们身边(他们不确定他们是否理解VB.NET,所以你可能不得不描述你的代码的功能)。 –

+0

@VisualVincent我觉得很奇怪,自从我公开致电给同一个地址后,我得到了这个错误。我会按照你的意见,并在他们的GitHub页面与他们联系。谢谢。 –

回答

0

nonce was to small。看评论。

相关问题