private WebRequest BuildHttpRequest(string resource, RestResponseFormat format, params string[] parms) { var hasParams = parms != null && parms.Length > 0; var uriBuilder = new UriBuilder(_address); uriBuilder.Path = "rest/" + resource + (hasParams ? "/" : "") + string.Join("/", parms) + "." + format.ToString().ToLowerInvariant(); var request = WebRequest.CreateHttp(uriBuilder.Uri); request.Method = "GET"; #if !(PORTABLE || NETCORE) request.KeepAlive = false; #endif return request; }
public async Task <byte[]> SendRequestAsync(string resource, RestResponseFormat format, params string[] parms) { WebRequest request = BuildHttpRequest(resource, format, parms); using (WebResponse response = await GetWebResponseAsync(request).ConfigureAwait(false)) { Stream stream = response.GetResponseStream(); int bytesToRead = (int)response.ContentLength; byte[] buffer = await stream.ReadBytesAsync(bytesToRead).ConfigureAwait(false); return(buffer); } }
/// <summary> /// Initializes a new instance of the <see cref="RestClient"/> class. /// </summary> /// <param name="address">The rest API endpoint</param> /// <param name="format">The format (bin | hex | json).</param> /// <exception cref="System.ArgumentNullException">Null rest API endpoint</exception> /// <exception cref="System.ArgumentException">Invalid value for RestResponseFormat</exception> private RestClient(Uri address, RestResponseFormat format) { if(address == null) throw new ArgumentNullException("address"); var typeOfRestResponseFormat = typeof(RestResponseFormat); if(!Enum.IsDefined(typeOfRestResponseFormat, format)) { throw new ArgumentException("Invalid value for RestResponseFormat"); } _address = address; _format = format; }
private WebRequest BuildHttpRequest(string resource, RestResponseFormat format, params string[] parms) { var hasParams = parms != null && parms.Length > 0; var uriBuilder = new UriBuilder(_address) { Path = "rest/" + resource + (hasParams ? "/" : "") + string.Join("/", parms) + "." + format.ToString().ToLowerInvariant() }; var request = WebRequest.CreateHttp(uriBuilder.Uri); request.Method = "GET"; return(request); }
/// <summary> /// Initializes a new instance of the <see cref="RestClient"/> class. /// </summary> /// <param name="address">The rest API endpoint</param> /// <param name="format">The format (bin | hex | json).</param> /// <exception cref="System.ArgumentNullException">Null rest API endpoint</exception> /// <exception cref="System.ArgumentException">Invalid value for RestResponseFormat</exception> private RestClient(Uri address, RestResponseFormat format) { if (address == null) { throw new ArgumentNullException("address"); } var typeOfRestResponseFormat = typeof(RestResponseFormat); if (!Enum.IsDefined(typeOfRestResponseFormat, format)) { throw new ArgumentException("Invalid value for RestResponseFormat"); } _address = address; _format = format; }
private WebRequest BuildHttpRequest(string resource, RestResponseFormat format, params string[] parms) { var hasParams = parms != null && parms.Length > 0; var uriBuilder = new UriBuilder(_address); uriBuilder.Path = "rest/" + resource + (hasParams ? "/" : "") + string.Join("/", parms) + "." + format.ToString().ToLowerInvariant(); var request = WebRequest.CreateHttp(uriBuilder.Uri); request.Method = "GET"; #if !PORTABLE request.KeepAlive = false; #endif return request; }
private async Task<byte[]> SendRequestAsync(string resource, RestResponseFormat format, params string[] parms) { var request = BuildHttpRequest(resource, format, parms); using(var response = await GetWebResponse(request).ConfigureAwait(false)) { var stream = response.GetResponseStream(); var bytesToRead = (int)response.ContentLength; var buffer = stream.ReadBytes(bytesToRead); return buffer; } }
private object BuildHttpRequest(string resource, RestResponseFormat format, params string[] parms) { return(null); }
public async Task <byte[]> SendRequestAsync(string resource, RestResponseFormat format, params string[] parms) { return(null); }