Esempio n. 1
0
        protected async Task <IRestResponse> SubmitPostAsync <T>(string url, string token, string origin, JsonRpcFormat <T> payload, string tenantUid = "")
        {
            var client = new RestClientExtended(url)
            {
                Timeout = TIMEOUT
            };
            var request = new RestRequest(Method.POST);
            var param   = JsonConvert.SerializeObject(payload);

            request.AddHeader("Content-Type", "application/json");
            request.AddHeader("Origin", origin);
            request.AddHeader("X-Forwarded-For", GetIpAddress());

            if (!string.IsNullOrEmpty(tenantUid))
            {
                request.AddHeader("Account-context", tenantUid);
            }

            if (!string.IsNullOrEmpty(token))
            {
                request.AddHeader("Authorization", $"Bearer {token}");
            }

            request.AddParameter("body", param, ParameterType.RequestBody);

            return(await client.ExecuteTaskAsync(request));
        }
Esempio n. 2
0
        protected async Task <IRestResponse> SubmitPostAsync(string url, string token, string origin, HttpPostedFileBase file, string tenantUid = "")
        {
            var client = new RestClientExtended(url)
            {
                Timeout = TIMEOUT
            };
            var request = new RestRequest(Method.POST);

            request.AddHeader("Content-Type", "multipart/form-data");
            request.AddHeader("Accept", "application/json");
            request.AddHeader("X-Forwarded-For", GetIpAddress());
            request.AddHeader("User-Agent", HttpContext.Current.Request.UserAgent);

            if (!string.IsNullOrEmpty(origin))
            {
                request.AddHeader("Origin", origin);
            }

            if (!string.IsNullOrEmpty(tenantUid))
            {
                request.AddHeader("Account-context", tenantUid);
            }

            if (!string.IsNullOrEmpty(token))
            {
                request.AddHeader("Authorization", $"Bearer {token}");
            }

            request.Files.Add(new FileParameter
            {
                Name   = "file",
                Writer = (s) =>
                {
                    var stream = file.InputStream;
                    stream.CopyTo(s);
                    stream.Dispose();
                },
                FileName      = file.FileName,
                ContentType   = file.ContentType,
                ContentLength = file.ContentLength
            });

            request.AddParameter("multipart/form-data", file.FileName, ParameterType.RequestBody);

            return(await client.ExecuteTaskAsync(request));
        }
Esempio n. 3
0
        private RestClientExtended SetupClient(string url, string origin, IParameter parameter, out RestRequest request, string authorization = "", RestSharp.Method method = Method.POST, string tenantUid = "", string locale = "", string returnUrl = "")
        {
            string param = string.Empty;

            if (parameter != null)
            {
                param = JsonConvert.SerializeObject(parameter); //serialize before, to get length
            }

            var client = new RestClientExtended(url)
            {
                Timeout = TIMEOUT
            };

            request = new RestRequest(method);
            request.AddHeader("cache-control", "no-cache");
            request.AddHeader("Connection", "keep-alive");
            request.AddHeader("Host", new Uri(url).Host);
            request.AddHeader("Umbraco-CMS-Token", $"{Guid.NewGuid()},{Guid.NewGuid()}");
            request.AddHeader("Cache-Control", "no-cache");
            request.AddHeader("Accept", "*/*");
            request.AddHeader("User-Agent", HttpContext.Current.Request.UserAgent);
            request.AddHeader("X-Forwarded-For", GetIpAddress());

            if (method == Method.POST)
            {
                // if (string.IsNullOrEmpty(param)) throw new Exception("When Posting, parameters are required");

                request.AddHeader("content-length", param.Length.ToString());
                request.AddHeader("accept-encoding", "gzip, deflate");
                request.AddHeader("Content-Type", "application/json");
            }

            if (!string.IsNullOrEmpty(tenantUid))
            {
                request.AddHeader("Account-context", tenantUid);
            }

            if (!string.IsNullOrEmpty(returnUrl))
            {
                request.AddHeader("ReturnUrl", returnUrl);
                //request.AddHeader("ReturnUrl", ContentHelper.EncodeUrl(returnUrl));
            }

            if (!string.IsNullOrEmpty(locale))
            {
                request.AddHeader("Locale", locale);
            }

            if (method == Method.POST && parameter != null)
            {
                request.AddParameter("body", param, ParameterType.RequestBody);
            }

            if (!string.IsNullOrEmpty(origin))
            {
                request.AddHeader("Origin", origin);
            }

            if (!string.IsNullOrEmpty(authorization))
            {
                request.AddHeader("Authorization", $"Bearer {authorization}");
            }

            return(client);
        }