예제 #1
0
 public static void SetOauthHeaderIfRequired(IronClientConfig config, IRestClientRequest request, HttpRequestHeaders headers)
 {
     if (request.AuthTokenLocation == AuthTokenLocation.Header)
     {
         headers.Authorization = new AuthenticationHeaderValue("OAuth", config.Token);
     }
 }
예제 #2
0
 public override void SetOauthHeaderIfRequired(IronClientConfig config, IRestClientRequest request, HttpRequestHeaders headers)
 {
     if (request.AuthTokenLocation == AuthTokenLocation.Header)
     {
         String token = tokenContainer.getToken();
         headers.Authorization = new AuthenticationHeaderValue("OAuth", token);
     }
 }
예제 #3
0
 /// <summary>
 /// Generates the Uri for the specified request.
 /// </summary>
 /// <param name="config">The project id and other config values</param>
 /// <param name="request">The request endpoint and query parameters</param>
 /// <param name="token">(optional) The token to use for the building the request uri if different than the Token specified in the config.</param>
 public Uri BuildRequestUri(IronClientConfig config, IRestClientRequest request, string token = null)
 {
     if (string.IsNullOrEmpty(token))
     {
         token = config.Token;
     }
     SetOathQueryParameterIfRequired(request, token);
     return(BuildUri(config, request.EndPoint, request.Query));
 }
예제 #4
0
        public static void SetOathQueryParameterIfRequired(IRestClientRequest request, string token)
        {
            if (request.AuthTokenLocation != AuthTokenLocation.Querystring)
            {
                return;
            }

            request.Query          = request.Query ?? new NameValueCollection();
            request.Query["oauth"] = token;
        }
예제 #5
0
        public Task <HttpResponseMessage> Execute(IronClientConfig config, IRestClientRequest request)
        {
            var requestBuilder = new HttpRequestMessageBuilder(config, this, new RestClientRequest
            {
                EndPoint = request.EndPoint,
                Query    = request.Query,
                Method   = request.Method,
                Content  = request.Content
            });

            return(httpClient.SendAsync(requestBuilder.Build()));
        }
예제 #6
0
        public static Task <HttpResponseMessage> Execute(IronClientConfig config, IRestClientRequest request)
        {
            HttpRequestMessage httpRequest = RestUtility.BuildIronRequest(config, new RestClientRequest
            {
                EndPoint = request.EndPoint,
                Query    = request.Query,
                Method   = request.Method,
                Content  = request.Content
            });

            using (var client = CreateHttpClient())
            {
                return(client.SendAsync(httpRequest));
            }
        }
예제 #7
0
        public static HttpRequestMessage BuildIronRequest(IronClientConfig config, IRestClientRequest request)
        {
            SetOathQueryParameterIfRequired(request, config.Token);
            var httpRequest = new HttpRequestMessage
            {
                Content    = request.Content,
                RequestUri = BuildProjectUri(config, request.EndPoint, request.Query),
                Method     = request.Method
            };

            HttpRequestHeaders headers = httpRequest.Headers;

            SetOauthHeaderIfRequired(config, request, headers);
            headers.AcceptEncoding.Add(new StringWithQualityHeaderValue("gzip"));
            headers.AcceptEncoding.Add(new StringWithQualityHeaderValue("deflate"));
            headers.Accept.Add(new MediaTypeWithQualityHeaderValue(request.Accept));

            return(httpRequest);
        }
예제 #8
0
 public HttpRequestMessageBuilder(IronClientConfig config, IRequestHelpersContainer requestHelpersContainer, IRestClientRequest request)
 {
     Config = config;
     RequestHelpersContainer = requestHelpersContainer;
     Request = request;
 }