예제 #1
0
파일: HTTP.cs 프로젝트: naithar/HTTPRequest
        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));
            }));
        }
예제 #2
0
파일: HTTP.cs 프로젝트: naithar/HTTPRequest
        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);
        }
예제 #3
0
파일: HTTP.cs 프로젝트: naithar/HTTPRequest
        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);
            }
        }