/// <summary> /// /// </summary> /// <param name="endpoint">api link address of a function</param> /// <param name="args">Add additional attributes for each exchange</param> /// <returns></returns> public override async ValueTask <IRestRequest> CreateDeleteRequestAsync(string endpoint, Dictionary <string, object> args = null) { var _request = await base.CreateDeleteRequestAsync(endpoint, args); if (IsAuthentication == true) { var _params = new Dictionary <string, object>(); { foreach (var _param in _request.Parameters) { _params.Add(_param.Name, _param.Value); } _request.Parameters.Clear(); } var _delete_data = _params.Count > 0 ? this.SerializeObject(_params, Formatting.None) : ""; { var _method = _request.Method.ToString(); var _url = ApiUrl + endpoint; var _body = _delete_data; var _nonce = GenerateOnlyNonce(16).ToString(); var _timestamp = GenerateNonceString(13); var _json_sign = this.SerializeObject(new[] { _method, _url, _body, _nonce, _timestamp }, Formatting.None); var _sign_nonce = Sha256Managed.ComputeHash(Encoding.UTF8.GetBytes(_nonce + _json_sign)); var _sign_data = Encoding.UTF8.GetBytes(_url).Concat(_sign_nonce).ToArray(); var _signature = Convert.ToBase64String(Encryptor.ComputeHash(_sign_data)); { _request.AddHeader("Authorization", $"{ConnectKey}:{_signature}"); _request.AddHeader("X-Auth-Timestamp", _timestamp); _request.AddHeader("X-Auth-Nonce", _nonce); } _request.AddParameter(new Parameter("application/json", _delete_data, ParameterType.RequestBody)); } } return(await Task.FromResult(_request)); }
/// <summary> /// /// </summary> /// <param name="endpoint">api link address of a function</param> /// <param name="args">Add additional attributes for each exchange</param> /// <returns></returns> public override async ValueTask <IRestRequest> CreateGetRequestAsync(string endpoint, Dictionary <string, object> args = null) { var _request = await base.CreateGetRequestAsync(endpoint, args); if (IsAuthentication == true) { var _post_params = _request.Parameters.ToDictionary(p => p.Name, p => p.Value); var _post_data = ToQueryString(_post_params); { var _query = _post_data.Length > 0 ? "?" + _post_data : ""; var _method = _request.Method.ToString(); var _url = ApiUrl + endpoint + _query; var _body = ""; var _nonce = GenerateOnlyNonce(16).ToString(); var _timestamp = GenerateNonceString(13); var _json_sign = this.SerializeObject(new[] { _method, _url, _body, _nonce, _timestamp }, Formatting.None); var _sign_nonce = Sha256Managed.ComputeHash(Encoding.UTF8.GetBytes(_nonce + _json_sign)); var _sign_data = Encoding.UTF8.GetBytes(_url).Concat(_sign_nonce).ToArray(); var _signature = Convert.ToBase64String(Encryptor.ComputeHash(_sign_data)); { _request.AddHeader("Authorization", $"{ConnectKey}:{_signature}"); _request.AddHeader("X-Auth-Timestamp", _timestamp); _request.AddHeader("X-Auth-Nonce", _nonce); } } } return(await Task.FromResult(_request)); }