Exemple #1
0
        protected virtual IRequest ConstructRequest(Uri uri, string method, Dictionary <string, object> parameters, bool signed)
        {
            if (parameters == null)
            {
                parameters = new Dictionary <string, object>();
            }

            var uriString = uri.ToString();

            if (authProvider != null)
            {
                parameters = authProvider.AddAuthenticationToParameters(uriString, method, parameters, signed);
            }

            if ((method == "GET" || method == "DELETE" || ((method == "POST" || method == "PUT") && postParametersPosition == PostParameters.InUri)) && parameters?.Any() == true)
            {
                uriString += parameters.CreateParamString();
            }

            var request = RequestFactory.Create(uriString);

            request.ContentType = requestBodyFormat == RequestBodyFormat.Json ? "application/json": "application/x-www-form-urlencoded";
            request.Accept      = "application/json";
            request.Method      = method;

            var headers = new Dictionary <string, string>();

            if (authProvider != null)
            {
                headers = authProvider.AddAuthenticationToHeaders(uriString, method, parameters, signed);
            }

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

            if ((method == "POST" || method == "PUT") && postParametersPosition != PostParameters.InUri)
            {
                if (parameters?.Any() == true)
                {
                    WriteParamBody(request, parameters);
                }
                else
                {
                    WriteParamBody(request, "{}");
                }
            }

            return(request);
        }