diff --git a/CryptoExchange.Net/ExchangeClient.cs b/CryptoExchange.Net/ExchangeClient.cs index 6bf89cd..dafa5c2 100644 --- a/CryptoExchange.Net/ExchangeClient.cs +++ b/CryptoExchange.Net/ExchangeClient.cs @@ -143,6 +143,7 @@ namespace CryptoExchange.Net var request = RequestFactory.Create(uriString); request.Method = method; + request.Parameters = parameters; if (authProvider != null) request = authProvider.AddAuthenticationToRequest(request, signed); @@ -155,6 +156,15 @@ namespace CryptoExchange.Net var returnedData = ""; try { + if (request.WriteCustomBody && + request.CustomBody != null && request.CustomBody.Length > 0) + { + using (var requestStream = await request.GetRequestStream()) + { + requestStream.Write(request.CustomBody, 0, request.CustomBody.Length); + } + } + var response = await request.GetResponse().ConfigureAwait(false); using (var reader = new StreamReader(response.GetResponseStream())) { diff --git a/CryptoExchange.Net/Interfaces/IRequest.cs b/CryptoExchange.Net/Interfaces/IRequest.cs index ec5219b..d984f18 100644 --- a/CryptoExchange.Net/Interfaces/IRequest.cs +++ b/CryptoExchange.Net/Interfaces/IRequest.cs @@ -1,4 +1,5 @@ using System; +using System.Collections.Generic; using System.IO; using System.Net; using System.Threading.Tasks; @@ -10,6 +11,10 @@ namespace CryptoExchange.Net.Interfaces Uri Uri { get; } WebHeaderCollection Headers { get; set; } string Method { get; set; } + Dictionary Parameters { get; set; } + + byte[] CustomBody { get; set; } + bool WriteCustomBody { get; set; } void SetProxy(string host, int port); diff --git a/CryptoExchange.Net/Requests/Request.cs b/CryptoExchange.Net/Requests/Request.cs index e2471a3..b381797 100644 --- a/CryptoExchange.Net/Requests/Request.cs +++ b/CryptoExchange.Net/Requests/Request.cs @@ -1,4 +1,5 @@ using System; +using System.Collections.Generic; using System.IO; using System.Net; using System.Threading.Tasks; @@ -44,6 +45,11 @@ namespace CryptoExchange.Net.Requests set => request.Method = value; } + public Dictionary Parameters { get; set; } + + public byte[] CustomBody { get; set; } + public bool WriteCustomBody { get; set; } = false; + public Uri Uri => request.RequestUri; public void SetProxy(string host, int port)