diff --git a/ShareX.UploadersLib/FileUploaders/CustomFileUploader.cs b/ShareX.UploadersLib/FileUploaders/CustomFileUploader.cs index 43e8839d6..85be2ca9b 100644 --- a/ShareX.UploadersLib/FileUploaders/CustomFileUploader.cs +++ b/ShareX.UploadersLib/FileUploaders/CustomFileUploader.cs @@ -44,7 +44,8 @@ public override UploadResult Upload(Stream stream, string fileName) throw new Exception("'Request type' must be 'POST' when using custom file uploader."); } - UploadResult result = UploadData(stream, customUploader.GetRequestURL(), fileName, customUploader.GetFileFormName(), customUploader.GetArguments(), responseType: customUploader.ResponseType); + UploadResult result = UploadData(stream, customUploader.GetRequestURL(), fileName, customUploader.GetFileFormName(), customUploader.GetArguments(), + customUploader.GetHeaders(), responseType: customUploader.ResponseType); if (result.IsSuccess) { diff --git a/ShareX.UploadersLib/HelperClasses/CustomUploaderItem.cs b/ShareX.UploadersLib/HelperClasses/CustomUploaderItem.cs index f7eb5db1b..04230f62a 100644 --- a/ShareX.UploadersLib/HelperClasses/CustomUploaderItem.cs +++ b/ShareX.UploadersLib/HelperClasses/CustomUploaderItem.cs @@ -26,6 +26,7 @@ using ShareX.HelpersLib; using System; using System.Collections.Generic; +using System.Collections.Specialized; using System.Text; using System.Text.RegularExpressions; @@ -121,6 +122,23 @@ public string GetFileFormName() return arguments; } + public NameValueCollection GetHeaders() + { + if (Headers != null && Headers.Count > 0) + { + NameValueCollection collection = new NameValueCollection(); + + foreach (KeyValuePair header in Headers) + { + collection.Add(header.Key, header.Value); + } + + return collection; + } + + return null; + } + public void ParseResponse(UploadResult result, bool isShortenedURL = false) { if (result != null && !string.IsNullOrEmpty(result.Response)) diff --git a/ShareX.UploadersLib/ImageUploaders/CustomImageUploader.cs b/ShareX.UploadersLib/ImageUploaders/CustomImageUploader.cs index e0d383968..f89a68952 100644 --- a/ShareX.UploadersLib/ImageUploaders/CustomImageUploader.cs +++ b/ShareX.UploadersLib/ImageUploaders/CustomImageUploader.cs @@ -44,7 +44,8 @@ public override UploadResult Upload(Stream stream, string fileName) throw new Exception("'Request type' must be 'POST' when using custom image uploader."); } - UploadResult result = UploadData(stream, customUploader.GetRequestURL(), fileName, customUploader.GetFileFormName(), customUploader.GetArguments(), responseType: customUploader.ResponseType); + UploadResult result = UploadData(stream, customUploader.GetRequestURL(), fileName, customUploader.GetFileFormName(), customUploader.GetArguments(), + customUploader.GetHeaders(), responseType: customUploader.ResponseType); if (result.IsSuccess) { diff --git a/ShareX.UploadersLib/TextUploaders/CustomTextUploader.cs b/ShareX.UploadersLib/TextUploaders/CustomTextUploader.cs index 5868551e2..b98d17834 100644 --- a/ShareX.UploadersLib/TextUploaders/CustomTextUploader.cs +++ b/ShareX.UploadersLib/TextUploaders/CustomTextUploader.cs @@ -56,20 +56,20 @@ public override UploadResult UploadText(string text, string fileName) { if (string.IsNullOrEmpty(customUploader.FileFormName)) { - result.Response = SendRequest(HttpMethod.POST, requestURL, args, responseType: customUploader.ResponseType); + result.Response = SendRequest(HttpMethod.POST, requestURL, args, customUploader.GetHeaders(), responseType: customUploader.ResponseType); } else { byte[] byteArray = Encoding.UTF8.GetBytes(text); using (MemoryStream stream = new MemoryStream(byteArray)) { - result = UploadData(stream, requestURL, fileName, customUploader.GetFileFormName(), args, responseType: customUploader.ResponseType); + result = UploadData(stream, requestURL, fileName, customUploader.GetFileFormName(), args, customUploader.GetHeaders(), responseType: customUploader.ResponseType); } } } else { - result.Response = SendRequest(customUploader.GetHttpMethod(), requestURL, args, responseType: customUploader.ResponseType); + result.Response = SendRequest(customUploader.GetHttpMethod(), requestURL, args, customUploader.GetHeaders(), responseType: customUploader.ResponseType); } customUploader.ParseResponse(result); diff --git a/ShareX.UploadersLib/URLShorteners/CustomURLShortener.cs b/ShareX.UploadersLib/URLShorteners/CustomURLShortener.cs index c0be84df5..3bc90aace 100644 --- a/ShareX.UploadersLib/URLShorteners/CustomURLShortener.cs +++ b/ShareX.UploadersLib/URLShorteners/CustomURLShortener.cs @@ -50,7 +50,7 @@ public override UploadResult ShortenURL(string url) Dictionary args = customUploader.GetArguments(url); - result.Response = SendRequest(customUploader.GetHttpMethod(), customUploader.GetRequestURL(), args, responseType: customUploader.ResponseType); + result.Response = SendRequest(customUploader.GetHttpMethod(), customUploader.GetRequestURL(), args, customUploader.GetHeaders(), responseType: customUploader.ResponseType); customUploader.ParseResponse(result, true);