public Task <HTTP.Response> Perform( string URL, HTTP.Method method = Method.GET, HTTP.Parameters parameters = null, HTTP.Headers headers = null, HTTP.Encoder encoder = null) { return(Task <HTTP.Response> .Run(async() => { var client = new System.Net.Http.HttpClient(); var request = this.Request(URL, method, parameters, headers, encoder); return new HTTP.Response(await client.SendAsync(request)); })); }
private System.Net.Http.HttpRequestMessage Request(string URL, HTTP.Method method, HTTP.Parameters parameters, HTTP.Headers headers, HTTP.Encoder encoder) { var request = new HttpRequestMessage(); request.Method = method.Method(); request.RequestUri = this.ApplyURL(URL); this.ApplyEncode(request, method, parameters, encoder); this.ApplyHeaders(request, headers); return(request); }
private void ApplyEncode(System.Net.Http.HttpRequestMessage request, HTTP.Method method, HTTP.Parameters parameters, HTTP.Encoder encoder) { HTTP.Encoder requestEncoder = encoder ?? URLEncoder.Instance; if ((parameters?.Count ?? 0) != 0 && method == Method.GET) { requestEncoder = URLEncoder.Instance; } if (requestEncoder != null && (parameters?.Count ?? 0) != 0) { requestEncoder.Encode(request, parameters); } }