Exemple #1
0
        public async Task <OcoOrderResponse> NewOcoOrderAsync(OcoOrder order)
        {
            String uri = "api/v3/order/oco";

            if (order.Timestamp == null)
            {
                order.Timestamp = DateNowUnix();
            }

            if (order.RecvWindow == null)
            {
                order.RecvWindow = 60000;
            }

            Dictionary <String, String> headers = new Dictionary <string, string>();

            headers.Add("X-MBX-APIKEY", ApiKey);

            String postData  = FormDataSerializer.Serialize(order);
            String signature = Sign(postData);

            postData += $"&signature={signature}";
            using (var response = await PostAsync(uri, postData, headers))
            {
                int    statusCode = (int)response.StatusCode;
                String body       = await response.Content.ReadAsStringAsync();

                CheckForBinanceException(statusCode, body);
                var orderResponse = JsonHelper.ParseFromJson <OcoOrderResponse>(body);
                return(orderResponse);
            }
        }
Exemple #2
0
        private HttpRequestMessage GenerateHttpRequest <TBody>(HttpMethod method, string url, TBody body)
            where TBody : class
        {
            HttpContent messageContent = null;
            var         requestUrl     = url;

            if (body != null)
            {
                messageContent = FormDataSerializer.Serialize(body, options =>
                {
                    options.DefaultNameResolver = new PascalToSnakeResolver();
                    options.EnumNameResolver    = new PascalToSnakeResolver();
                    options.DefaultDateFormat   = "yyyy-MM-dd HH:mm:sszzz";
                });

                if (method == HttpMethod.Get && messageContent is MultipartFormDataContent multipartFormDataContent)
                {
                    foreach (var content in multipartFormDataContent)
                    {
                        var dataTask = content.ReadAsStringAsync();
                        dataTask.Wait();

                        if (!string.IsNullOrWhiteSpace(dataTask.Result))
                        {
                            var paramName = content.Headers.ContentDisposition.Name.Trim('"');
                            requestUrl += $"{(requestUrl.Contains('?') ? '&' : '?')}{paramName}={HttpUtility.UrlEncode(dataTask.Result)}";
                        }
                    }
                }
            }

            var httpMessage = new HttpRequestMessage(method, requestUrl);

            httpMessage.Content = messageContent;

            return(httpMessage);
        }
Exemple #3
0
 public override string ToString()
 {
     return(FormDataSerializer.Serialize(this));
 }