Exemplo n.º 1
0
        /// <summary>
        /// Perform a Request by an IRESTRequest object
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public async Task <IRESTResponse> PerformRequestAsync(IRESTRequest request)
        {
            IRESTResponse response = null;

            switch (request.GetMethod())
            {
            case Method.POST:
            {
                response = await this.PerformPostRequestAsync(request.GetUrl(), request.GetQueryArgs(), request.GetHeaders(), request.GetContent());

                break;
            }

            case Method.PUT:
            {
                response = await this.PerformPutRequestAsync(request.GetUrl(), request.GetQueryArgs(), request.GetHeaders(), request.GetContent());

                break;
            }

            case Method.GET:
            {
                response = await this.PerformGetRequestAsync(request.GetUrl(), request.GetQueryArgs(), request.GetHeaders());

                break;
            }

            case Method.PATCH:
            {
                response = await this.PerformPatchRequestAsync(request.GetUrl(), request.GetQueryArgs(), request.GetHeaders(), request.GetContent());

                break;
            }

            case Method.OPTIONS:
            {
                response = await this.PerformOptionsRequestAsync(request.GetUrl(), request.GetQueryArgs(), request.GetHeaders(), request.GetContent());

                break;
            }

            case Method.HEAD:
            {
                response = await this.PerformHeadRequestAsync(request.GetUrl(), request.GetQueryArgs(), request.GetHeaders());

                break;
            }

            case Method.DELETE:
            {
                response = await this.PerformDeleteRequestAsync(request.GetUrl(), request.GetQueryArgs(), request.GetHeaders());

                break;
            }
            }
            return(response);
        }
        public async Task <IRESTResponse> PerformRequestAsync(IRESTRequest request)
        {
            var req = new HttpRequestMessage()
            {
                Method     = new HttpMethod(request.Method.ToString()),
                RequestUri = new Uri(request.Url),
                Content    = request.Body
            };

            foreach (var header in request.Headers)
            {
                req.Headers.Add(header.Key, header.Value);
            }

            return(new RESTResponse(await httpClient.SendAsync(req)));
        }
 /// <summary>
 /// CTOR
 /// </summary>
 /// <param name="httpClient"></param>
 /// <param name="logger"></param>
 public PlaceAutocompleteSearchProcessor(IRESTRequest <PlacesResponse, Dictionary <string, string> > restService, ILogger logger)
 {
     _restService = restService;
     _logger      = logger;
 }