Websocket Json请求错误,而不是常规错误

Websocket Json请求错误,而不是常规错误,websocket,json.net,Websocket,Json.net,正在尝试通过WebSocket(WebSocketSharp)连接到 下面是登录json模型 { "Id": <some unique Id>, "Request": "Login", "Params": { "AuthType": "HMAC", "WebApiId": <Web API Id>, "WebApiKey": <Web API Key>,

正在尝试通过WebSocket(WebSocketSharp)连接到

下面是登录json模型

 {
      "Id": <some unique Id>,
      "Request": "Login",
      "Params": {
        "AuthType": "HMAC",
        "WebApiId":  <Web API Id>,
        "WebApiKey": <Web API Key>,
        "Timestamp": <timestamp (e.g. Date.now())>,
        "Signature": <signature>,
        "DeviceId":  <Device Id>
      }
    }
而不是正常的反应

{
  "Id": <your unique Id>,
  "Response": "Error",
  "Error": <error description from TickTrader Server>
}
Json序列化输出

{
"Id": "be078b3d-2eb8-475a-97fb-89aedf775b78",
"Request": "Login",
"Params": {
    "AuthType": "HMAC",
    "WebApiId": "myid",
    "WebApiKey": "mykey",
    "Timestamp": "1467486605",
    "Signature": "NbREH0HkPadfuDESuGEHho/FwX+DFdIoCV/D5aW/gv8=",
    "DeviceId": "WebBrowser"
}
}


提前感谢

终于发现了问题,时间戳似乎不应该是字符串,而应该是长字符串

    LoginParams GetLogin()
    {
        return new LoginParams
        {
            Id = Guid.NewGuid().ToString(),
            Request = "Login",
            Params = new Parameters
            {
                AuthType = "HMAC",
                WebApiId = "my id",
                WebApiKey = "my api key",
                Timestamp = ((long)(DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1))).TotalSeconds).ToString(),
                Signature = Hmac.CreateToken(((long)(DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1))).TotalMilliseconds), "2058e846-0a32-49b9-bc8f-4e28afd0aa9c", "my id", "my key").ToString(),

                DeviceId = "WebBrowser"
            }
        };
    }

错误可能正是报告的内容:无效JSON。JSON示例没有实际数据,因此无法确定错误是什么。web和应用程序上都有JSON验证器,许多会解释确切的错误,请尝试一个。尝试输出似乎有效签名不是URL安全的,这是send方法的问题吗?不需要URL安全
{
"Id": "be078b3d-2eb8-475a-97fb-89aedf775b78",
"Request": "Login",
"Params": {
    "AuthType": "HMAC",
    "WebApiId": "myid",
    "WebApiKey": "mykey",
    "Timestamp": "1467486605",
    "Signature": "NbREH0HkPadfuDESuGEHho/FwX+DFdIoCV/D5aW/gv8=",
    "DeviceId": "WebBrowser"
}
    LoginParams GetLogin()
    {
        return new LoginParams
        {
            Id = Guid.NewGuid().ToString(),
            Request = "Login",
            Params = new Parameters
            {
                AuthType = "HMAC",
                WebApiId = "my id",
                WebApiKey = "my api key",
                Timestamp = ((long)(DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1))).TotalSeconds).ToString(),
                Signature = Hmac.CreateToken(((long)(DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1))).TotalMilliseconds), "2058e846-0a32-49b9-bc8f-4e28afd0aa9c", "my id", "my key").ToString(),

                DeviceId = "WebBrowser"
            }
        };
    }