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)); }
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)); }
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); }