mirror of
https://github.com/ShareX/ShareX.git
synced 2024-09-30 01:07:21 +13:00
Implement parameters to custom uploader requests
This commit is contained in:
parent
cf8879cfb8
commit
f077a0eed3
9 changed files with 52 additions and 35 deletions
|
@ -142,12 +142,12 @@ protected string SendRequest(HttpMethod method, string url, string content, stri
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public string SendRequestURLEncoded(HttpMethod method, string url, Dictionary<string, string> args, NameValueCollection headers = null, CookieCollection cookies = null,
|
internal string SendRequestURLEncoded(HttpMethod method, string url, Dictionary<string, string> args, NameValueCollection headers = null, CookieCollection cookies = null,
|
||||||
ResponseType responseType = ResponseType.Text)
|
ResponseType responseType = ResponseType.Text)
|
||||||
{
|
{
|
||||||
string query = URLHelpers.CreateQueryString(args);
|
string query = URLHelpers.CreateQueryString(args);
|
||||||
|
|
||||||
return SendRequest(method, url, query, UploadHelpers.ContentTypeURLEncoded, args, headers, cookies, responseType);
|
return SendRequest(method, url, query, UploadHelpers.ContentTypeURLEncoded, null, headers, cookies, responseType);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected bool SendRequestDownload(HttpMethod method, string url, Stream downloadStream, Dictionary<string, string> args = null,
|
protected bool SendRequestDownload(HttpMethod method, string url, Stream downloadStream, Dictionary<string, string> args = null,
|
||||||
|
|
|
@ -62,7 +62,7 @@ public class CustomUploaderItem
|
||||||
|
|
||||||
public bool ShouldSerializeHeaders() => Headers != null && Headers.Count > 0;
|
public bool ShouldSerializeHeaders() => Headers != null && Headers.Count > 0;
|
||||||
|
|
||||||
public CustomUploaderRequestFormat RequestFormat { get; set; }
|
public CustomUploaderRequestFormat RequestFormat { get; set; } = CustomUploaderRequestFormat.MultipartFormData;
|
||||||
|
|
||||||
[DefaultValue("")]
|
[DefaultValue("")]
|
||||||
public string FileFormName { get; set; }
|
public string FileFormName { get; set; }
|
||||||
|
@ -129,11 +129,29 @@ public string GetRequestURL(CustomUploaderInput input)
|
||||||
throw new Exception(Resources.CustomUploaderItem_GetRequestURL_RequestURLMustBeConfigured);
|
throw new Exception(Resources.CustomUploaderItem_GetRequestURL_RequestURLMustBeConfigured);
|
||||||
}
|
}
|
||||||
|
|
||||||
CustomUploaderParser parser = new CustomUploaderParser(input);
|
string url = URLHelpers.FixPrefix(RequestURL);
|
||||||
parser.URLEncode = true;
|
|
||||||
|
|
||||||
string url = parser.Parse(RequestURL);
|
Dictionary<string, string> parameters = GetParameters(input);
|
||||||
return URLHelpers.FixPrefix(url);
|
|
||||||
|
return URLHelpers.CreateQueryString(url, parameters);
|
||||||
|
}
|
||||||
|
|
||||||
|
public Dictionary<string, string> GetParameters(CustomUploaderInput input)
|
||||||
|
{
|
||||||
|
Dictionary<string, string> parameters = new Dictionary<string, string>();
|
||||||
|
|
||||||
|
if (Parameters != null)
|
||||||
|
{
|
||||||
|
CustomUploaderParser parser = new CustomUploaderParser(input);
|
||||||
|
parser.UseNameParser = true;
|
||||||
|
|
||||||
|
foreach (KeyValuePair<string, string> parameter in Parameters)
|
||||||
|
{
|
||||||
|
parameters.Add(parameter.Key, parser.Parse(parameter.Value));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return parameters;
|
||||||
}
|
}
|
||||||
|
|
||||||
public string GetData(CustomUploaderInput input)
|
public string GetData(CustomUploaderInput input)
|
||||||
|
@ -236,7 +254,7 @@ public void CheckBackwardCompatibility()
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
RequestFormat = CustomUploaderRequestFormat.URLQueryString;
|
RequestFormat = CustomUploaderRequestFormat.None;
|
||||||
|
|
||||||
if (Arguments != null)
|
if (Arguments != null)
|
||||||
{
|
{
|
||||||
|
|
|
@ -291,10 +291,10 @@ public enum LinkFormatEnum
|
||||||
|
|
||||||
public enum CustomUploaderRequestFormat
|
public enum CustomUploaderRequestFormat
|
||||||
{
|
{
|
||||||
|
[Description("None")]
|
||||||
|
None,
|
||||||
[Description("Form data (multipart/form-data)")]
|
[Description("Form data (multipart/form-data)")]
|
||||||
MultipartFormData,
|
MultipartFormData,
|
||||||
[Description("URL query string (example.com?name1=value1)")]
|
|
||||||
URLQueryString,
|
|
||||||
[Description("JSON (application/json)")]
|
[Description("JSON (application/json)")]
|
||||||
JSON,
|
JSON,
|
||||||
[Description("Binary")]
|
[Description("Binary")]
|
||||||
|
|
|
@ -91,7 +91,7 @@ public override UploadResult Upload(Stream stream, string fileName)
|
||||||
else if (uploader.RequestFormat == CustomUploaderRequestFormat.Binary)
|
else if (uploader.RequestFormat == CustomUploaderRequestFormat.Binary)
|
||||||
{
|
{
|
||||||
result.Response = SendRequest(uploader.RequestType, uploader.GetRequestURL(input), stream, UploadHelpers.GetMimeType(fileName),
|
result.Response = SendRequest(uploader.RequestType, uploader.GetRequestURL(input), stream, UploadHelpers.GetMimeType(fileName),
|
||||||
uploader.GetArguments(input), uploader.GetHeaders(input), null, uploader.ResponseType);
|
null, uploader.GetHeaders(input), null, uploader.ResponseType);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
|
@ -1038,9 +1038,10 @@ private void CustomUploaderUpdateStates()
|
||||||
|
|
||||||
if (isSelected)
|
if (isSelected)
|
||||||
{
|
{
|
||||||
|
CustomUploaderUpdateParametersState();
|
||||||
|
CustomUploaderUpdateHeadersState();
|
||||||
CustomUploaderUpdateRequestFormatState();
|
CustomUploaderUpdateRequestFormatState();
|
||||||
CustomUploaderUpdateArgumentsState();
|
CustomUploaderUpdateArgumentsState();
|
||||||
CustomUploaderUpdateHeadersState();
|
|
||||||
CustomUploaderUpdateResponseState();
|
CustomUploaderUpdateResponseState();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -88,7 +88,7 @@ public override UploadResult Upload(Stream stream, string fileName)
|
||||||
else if (uploader.RequestFormat == CustomUploaderRequestFormat.Binary)
|
else if (uploader.RequestFormat == CustomUploaderRequestFormat.Binary)
|
||||||
{
|
{
|
||||||
result.Response = SendRequest(uploader.RequestType, uploader.GetRequestURL(input), stream, UploadHelpers.GetMimeType(fileName),
|
result.Response = SendRequest(uploader.RequestType, uploader.GetRequestURL(input), stream, UploadHelpers.GetMimeType(fileName),
|
||||||
uploader.GetArguments(input), uploader.GetHeaders(input), null, uploader.ResponseType);
|
null, uploader.GetHeaders(input), null, uploader.ResponseType);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
|
@ -78,20 +78,20 @@ public override UploadResult ShareURL(string url)
|
||||||
UploadResult result = new UploadResult { URL = url, IsURLExpected = false };
|
UploadResult result = new UploadResult { URL = url, IsURLExpected = false };
|
||||||
CustomUploaderInput input = new CustomUploaderInput("", url);
|
CustomUploaderInput input = new CustomUploaderInput("", url);
|
||||||
|
|
||||||
if (uploader.RequestFormat == CustomUploaderRequestFormat.MultipartFormData)
|
if (uploader.RequestFormat == CustomUploaderRequestFormat.None)
|
||||||
|
{
|
||||||
|
result.Response = SendRequest(uploader.RequestType, uploader.GetRequestURL(input), null,
|
||||||
|
uploader.GetHeaders(input), null, uploader.ResponseType);
|
||||||
|
}
|
||||||
|
else if (uploader.RequestFormat == CustomUploaderRequestFormat.MultipartFormData)
|
||||||
{
|
{
|
||||||
result.Response = SendRequestMultiPart(uploader.GetRequestURL(input), uploader.GetArguments(input), uploader.GetHeaders(input), null,
|
result.Response = SendRequestMultiPart(uploader.GetRequestURL(input), uploader.GetArguments(input), uploader.GetHeaders(input), null,
|
||||||
uploader.ResponseType, uploader.RequestType);
|
uploader.ResponseType, uploader.RequestType);
|
||||||
}
|
}
|
||||||
else if (uploader.RequestFormat == CustomUploaderRequestFormat.URLQueryString)
|
|
||||||
{
|
|
||||||
result.Response = SendRequest(uploader.RequestType, uploader.GetRequestURL(input), uploader.GetArguments(input),
|
|
||||||
uploader.GetHeaders(input), null, uploader.ResponseType);
|
|
||||||
}
|
|
||||||
else if (uploader.RequestFormat == CustomUploaderRequestFormat.JSON)
|
else if (uploader.RequestFormat == CustomUploaderRequestFormat.JSON)
|
||||||
{
|
{
|
||||||
result.Response = SendRequest(uploader.RequestType, uploader.GetRequestURL(input), uploader.GetData(input), UploadHelpers.ContentTypeJSON,
|
result.Response = SendRequest(uploader.RequestType, uploader.GetRequestURL(input), uploader.GetData(input), UploadHelpers.ContentTypeJSON,
|
||||||
uploader.GetArguments(input), uploader.GetHeaders(input), null, uploader.ResponseType);
|
null, uploader.GetHeaders(input), null, uploader.ResponseType);
|
||||||
}
|
}
|
||||||
else if (uploader.RequestFormat == CustomUploaderRequestFormat.FormURLEncoded)
|
else if (uploader.RequestFormat == CustomUploaderRequestFormat.FormURLEncoded)
|
||||||
{
|
{
|
||||||
|
|
|
@ -83,7 +83,11 @@ public override UploadResult UploadText(string text, string fileName)
|
||||||
UploadResult result = new UploadResult();
|
UploadResult result = new UploadResult();
|
||||||
CustomUploaderInput input = new CustomUploaderInput(fileName, text);
|
CustomUploaderInput input = new CustomUploaderInput(fileName, text);
|
||||||
|
|
||||||
if (uploader.RequestFormat == CustomUploaderRequestFormat.MultipartFormData)
|
if (uploader.RequestFormat == CustomUploaderRequestFormat.None)
|
||||||
|
{
|
||||||
|
result.Response = SendRequest(uploader.RequestType, uploader.GetRequestURL(input), null, uploader.GetHeaders(input), null, uploader.ResponseType);
|
||||||
|
}
|
||||||
|
else if (uploader.RequestFormat == CustomUploaderRequestFormat.MultipartFormData)
|
||||||
{
|
{
|
||||||
if (string.IsNullOrEmpty(uploader.FileFormName))
|
if (string.IsNullOrEmpty(uploader.FileFormName))
|
||||||
{
|
{
|
||||||
|
@ -100,15 +104,10 @@ public override UploadResult UploadText(string text, string fileName)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (uploader.RequestFormat == CustomUploaderRequestFormat.URLQueryString)
|
|
||||||
{
|
|
||||||
result.Response = SendRequest(uploader.RequestType, uploader.GetRequestURL(input), uploader.GetArguments(input),
|
|
||||||
uploader.GetHeaders(input), null, uploader.ResponseType);
|
|
||||||
}
|
|
||||||
else if (uploader.RequestFormat == CustomUploaderRequestFormat.JSON)
|
else if (uploader.RequestFormat == CustomUploaderRequestFormat.JSON)
|
||||||
{
|
{
|
||||||
result.Response = SendRequest(uploader.RequestType, uploader.GetRequestURL(input), uploader.GetData(input), UploadHelpers.ContentTypeJSON,
|
result.Response = SendRequest(uploader.RequestType, uploader.GetRequestURL(input), uploader.GetData(input), UploadHelpers.ContentTypeJSON,
|
||||||
uploader.GetArguments(input), uploader.GetHeaders(input), null, uploader.ResponseType);
|
null, uploader.GetHeaders(input), null, uploader.ResponseType);
|
||||||
}
|
}
|
||||||
else if (uploader.RequestFormat == CustomUploaderRequestFormat.Binary)
|
else if (uploader.RequestFormat == CustomUploaderRequestFormat.Binary)
|
||||||
{
|
{
|
||||||
|
@ -116,7 +115,7 @@ public override UploadResult UploadText(string text, string fileName)
|
||||||
using (MemoryStream stream = new MemoryStream(bytes))
|
using (MemoryStream stream = new MemoryStream(bytes))
|
||||||
{
|
{
|
||||||
result.Response = SendRequest(uploader.RequestType, uploader.GetRequestURL(input), stream, UploadHelpers.GetMimeType(fileName),
|
result.Response = SendRequest(uploader.RequestType, uploader.GetRequestURL(input), stream, UploadHelpers.GetMimeType(fileName),
|
||||||
uploader.GetArguments(input), uploader.GetHeaders(input), null, uploader.ResponseType);
|
null, uploader.GetHeaders(input), null, uploader.ResponseType);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (uploader.RequestFormat == CustomUploaderRequestFormat.FormURLEncoded)
|
else if (uploader.RequestFormat == CustomUploaderRequestFormat.FormURLEncoded)
|
||||||
|
|
|
@ -78,20 +78,19 @@ public override UploadResult ShortenURL(string url)
|
||||||
UploadResult result = new UploadResult { URL = url };
|
UploadResult result = new UploadResult { URL = url };
|
||||||
CustomUploaderInput input = new CustomUploaderInput("", url);
|
CustomUploaderInput input = new CustomUploaderInput("", url);
|
||||||
|
|
||||||
if (uploader.RequestFormat == CustomUploaderRequestFormat.MultipartFormData)
|
if (uploader.RequestFormat == CustomUploaderRequestFormat.None)
|
||||||
|
{
|
||||||
|
result.Response = SendRequest(uploader.RequestType, uploader.GetRequestURL(input), null, uploader.GetHeaders(input), null, uploader.ResponseType);
|
||||||
|
}
|
||||||
|
else if (uploader.RequestFormat == CustomUploaderRequestFormat.MultipartFormData)
|
||||||
{
|
{
|
||||||
result.Response = SendRequestMultiPart(uploader.GetRequestURL(input), uploader.GetArguments(input), uploader.GetHeaders(input), null,
|
result.Response = SendRequestMultiPart(uploader.GetRequestURL(input), uploader.GetArguments(input), uploader.GetHeaders(input), null,
|
||||||
uploader.ResponseType, uploader.RequestType);
|
uploader.ResponseType, uploader.RequestType);
|
||||||
}
|
}
|
||||||
else if (uploader.RequestFormat == CustomUploaderRequestFormat.URLQueryString)
|
|
||||||
{
|
|
||||||
result.Response = SendRequest(uploader.RequestType, uploader.GetRequestURL(input), uploader.GetArguments(input),
|
|
||||||
uploader.GetHeaders(input), null, uploader.ResponseType);
|
|
||||||
}
|
|
||||||
else if (uploader.RequestFormat == CustomUploaderRequestFormat.JSON)
|
else if (uploader.RequestFormat == CustomUploaderRequestFormat.JSON)
|
||||||
{
|
{
|
||||||
result.Response = SendRequest(uploader.RequestType, uploader.GetRequestURL(input), uploader.GetData(input), UploadHelpers.ContentTypeJSON,
|
result.Response = SendRequest(uploader.RequestType, uploader.GetRequestURL(input), uploader.GetData(input), UploadHelpers.ContentTypeJSON,
|
||||||
uploader.GetArguments(input), uploader.GetHeaders(input), null, uploader.ResponseType);
|
null, uploader.GetHeaders(input), null, uploader.ResponseType);
|
||||||
}
|
}
|
||||||
else if (uploader.RequestFormat == CustomUploaderRequestFormat.FormURLEncoded)
|
else if (uploader.RequestFormat == CustomUploaderRequestFormat.FormURLEncoded)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in a new issue