mirror of
https://github.com/ShareX/ShareX.git
synced 2024-10-04 04:06:05 +13:00
Don't restrict custom uploaders with http method
This commit is contained in:
parent
f1b46519d4
commit
4169dfe64a
6 changed files with 21 additions and 47 deletions
|
@ -170,7 +170,7 @@ protected bool SendRequestDownload(HttpMethod method, string url, Stream downloa
|
||||||
}
|
}
|
||||||
|
|
||||||
protected string SendRequestMultiPart(string url, Dictionary<string, string> args, NameValueCollection headers = null, CookieCollection cookies = null,
|
protected string SendRequestMultiPart(string url, Dictionary<string, string> args, NameValueCollection headers = null, CookieCollection cookies = null,
|
||||||
ResponseType responseType = ResponseType.Text)
|
ResponseType responseType = ResponseType.Text, HttpMethod method = HttpMethod.POST)
|
||||||
{
|
{
|
||||||
string boundary = UploadHelpers.CreateBoundary();
|
string boundary = UploadHelpers.CreateBoundary();
|
||||||
string contentType = UploadHelpers.ContentTypeMultipartFormData + "; boundary=" + boundary;
|
string contentType = UploadHelpers.ContentTypeMultipartFormData + "; boundary=" + boundary;
|
||||||
|
@ -180,7 +180,7 @@ protected string SendRequestMultiPart(string url, Dictionary<string, string> arg
|
||||||
{
|
{
|
||||||
stream.Write(data, 0, data.Length);
|
stream.Write(data, 0, data.Length);
|
||||||
|
|
||||||
using (HttpWebResponse webResponse = GetResponse(HttpMethod.POST, url, stream, contentType, null, headers, cookies))
|
using (HttpWebResponse webResponse = GetResponse(method, url, stream, contentType, null, headers, cookies))
|
||||||
{
|
{
|
||||||
string response = UploadHelpers.ResponseToString(webResponse, responseType);
|
string response = UploadHelpers.ResponseToString(webResponse, responseType);
|
||||||
|
|
||||||
|
|
|
@ -80,15 +80,10 @@ public CustomFileUploader(CustomUploaderItem customUploaderItem)
|
||||||
|
|
||||||
public override UploadResult Upload(Stream stream, string fileName)
|
public override UploadResult Upload(Stream stream, string fileName)
|
||||||
{
|
{
|
||||||
if (customUploader.RequestType != CustomUploaderRequestMethod.POST)
|
|
||||||
{
|
|
||||||
throw new Exception("'Request type' must be 'POST' when using custom file uploader.");
|
|
||||||
}
|
|
||||||
|
|
||||||
CustomUploaderArgumentInput input = new CustomUploaderArgumentInput(fileName, "");
|
CustomUploaderArgumentInput input = new CustomUploaderArgumentInput(fileName, "");
|
||||||
|
|
||||||
UploadResult result = SendRequestFile(customUploader.GetRequestURL(), stream, fileName, customUploader.GetFileFormName(),
|
UploadResult result = SendRequestFile(customUploader.GetRequestURL(), stream, fileName, customUploader.GetFileFormName(),
|
||||||
customUploader.GetArguments(input), customUploader.GetHeaders(input), responseType: customUploader.ResponseType);
|
customUploader.GetArguments(input), customUploader.GetHeaders(input), null, customUploader.ResponseType, customUploader.GetHttpMethod());
|
||||||
|
|
||||||
if (result.IsSuccess)
|
if (result.IsSuccess)
|
||||||
{
|
{
|
||||||
|
|
|
@ -77,15 +77,10 @@ public CustomImageUploader(CustomUploaderItem customUploaderItem)
|
||||||
|
|
||||||
public override UploadResult Upload(Stream stream, string fileName)
|
public override UploadResult Upload(Stream stream, string fileName)
|
||||||
{
|
{
|
||||||
if (customUploader.RequestType != CustomUploaderRequestMethod.POST)
|
|
||||||
{
|
|
||||||
throw new Exception("'Request type' must be 'POST' when using custom image uploader.");
|
|
||||||
}
|
|
||||||
|
|
||||||
CustomUploaderArgumentInput input = new CustomUploaderArgumentInput(fileName, "");
|
CustomUploaderArgumentInput input = new CustomUploaderArgumentInput(fileName, "");
|
||||||
|
|
||||||
UploadResult result = SendRequestFile(customUploader.GetRequestURL(), stream, fileName, customUploader.GetFileFormName(),
|
UploadResult result = SendRequestFile(customUploader.GetRequestURL(), stream, fileName, customUploader.GetFileFormName(),
|
||||||
customUploader.GetArguments(input), customUploader.GetHeaders(input), responseType: customUploader.ResponseType);
|
customUploader.GetArguments(input), customUploader.GetHeaders(input), null, customUploader.ResponseType, customUploader.GetHttpMethod());
|
||||||
|
|
||||||
if (result.IsSuccess)
|
if (result.IsSuccess)
|
||||||
{
|
{
|
||||||
|
|
|
@ -74,28 +74,22 @@ public CustomURLSharer(CustomUploaderItem customUploaderItem)
|
||||||
|
|
||||||
public override UploadResult ShareURL(string url)
|
public override UploadResult ShareURL(string url)
|
||||||
{
|
{
|
||||||
if (customUploader.RequestType == CustomUploaderRequestMethod.POST && !string.IsNullOrEmpty(customUploader.FileFormName))
|
|
||||||
throw new Exception("'File form name' cannot be used with custom URL sharing service.");
|
|
||||||
|
|
||||||
if ((customUploader.Arguments == null || !customUploader.Arguments.Any(x => x.Value.Contains("$input$"))) &&
|
if ((customUploader.Arguments == null || !customUploader.Arguments.Any(x => x.Value.Contains("$input$"))) &&
|
||||||
(customUploader.Headers == null || !customUploader.Headers.Any(x => x.Value.Contains("$input$"))))
|
(customUploader.Headers == null || !customUploader.Headers.Any(x => x.Value.Contains("$input$"))))
|
||||||
throw new Exception("Atleast one '$input$' required for argument or header value.");
|
throw new Exception("Atleast one '$input$' required for argument or header value.");
|
||||||
|
|
||||||
UploadResult result = new UploadResult { URL = url, IsURLExpected = false };
|
UploadResult result = new UploadResult { URL = url, IsURLExpected = false };
|
||||||
|
|
||||||
CustomUploaderArgumentInput input = new CustomUploaderArgumentInput("", url);
|
CustomUploaderArgumentInput input = new CustomUploaderArgumentInput("", url);
|
||||||
|
|
||||||
Dictionary<string, string> args = customUploader.GetArguments(input);
|
|
||||||
|
|
||||||
if (customUploader.RequestType == CustomUploaderRequestMethod.POST)
|
if (customUploader.RequestType == CustomUploaderRequestMethod.POST)
|
||||||
{
|
{
|
||||||
result.Response = SendRequestMultiPart(customUploader.GetRequestURL(), args, customUploader.GetHeaders(input),
|
result.Response = SendRequestMultiPart(customUploader.GetRequestURL(), customUploader.GetArguments(input), customUploader.GetHeaders(input), null,
|
||||||
responseType: customUploader.ResponseType);
|
customUploader.ResponseType, customUploader.GetHttpMethod());
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
result.Response = SendRequest(customUploader.GetHttpMethod(), customUploader.GetRequestURL(), args, customUploader.GetHeaders(input),
|
result.Response = SendRequest(customUploader.GetHttpMethod(), customUploader.GetRequestURL(), customUploader.GetArguments(input),
|
||||||
responseType: customUploader.ResponseType);
|
customUploader.GetHeaders(input), null, customUploader.ResponseType);
|
||||||
}
|
}
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
|
|
|
@ -80,39 +80,35 @@ public CustomTextUploader(CustomUploaderItem customUploaderItem)
|
||||||
|
|
||||||
public override UploadResult UploadText(string text, string fileName)
|
public override UploadResult UploadText(string text, string fileName)
|
||||||
{
|
{
|
||||||
UploadResult result = new UploadResult();
|
|
||||||
|
|
||||||
string requestURL = customUploader.GetRequestURL();
|
|
||||||
|
|
||||||
if ((customUploader.RequestType != CustomUploaderRequestMethod.POST || string.IsNullOrEmpty(customUploader.FileFormName)) &&
|
if ((customUploader.RequestType != CustomUploaderRequestMethod.POST || string.IsNullOrEmpty(customUploader.FileFormName)) &&
|
||||||
((customUploader.Arguments == null || !customUploader.Arguments.Any(x => x.Value.Contains("$input$"))) &&
|
((customUploader.Arguments == null || !customUploader.Arguments.Any(x => x.Value.Contains("$input$"))) &&
|
||||||
(customUploader.Headers == null || !customUploader.Headers.Any(x => x.Value.Contains("$input$")))))
|
(customUploader.Headers == null || !customUploader.Headers.Any(x => x.Value.Contains("$input$")))))
|
||||||
throw new Exception("Atleast one '$input$' required for argument or header value.");
|
throw new Exception("Atleast one '$input$' required for argument or header value.");
|
||||||
|
|
||||||
|
UploadResult result = new UploadResult();
|
||||||
CustomUploaderArgumentInput input = new CustomUploaderArgumentInput(fileName, text);
|
CustomUploaderArgumentInput input = new CustomUploaderArgumentInput(fileName, text);
|
||||||
|
|
||||||
Dictionary<string, string> args = customUploader.GetArguments(input);
|
|
||||||
|
|
||||||
if (customUploader.RequestType == CustomUploaderRequestMethod.POST)
|
if (customUploader.RequestType == CustomUploaderRequestMethod.POST)
|
||||||
{
|
{
|
||||||
if (string.IsNullOrEmpty(customUploader.FileFormName))
|
if (string.IsNullOrEmpty(customUploader.FileFormName))
|
||||||
{
|
{
|
||||||
result.Response = SendRequestMultiPart(requestURL, args, customUploader.GetHeaders(input), responseType: customUploader.ResponseType);
|
result.Response = SendRequestMultiPart(customUploader.GetRequestURL(), customUploader.GetArguments(input),
|
||||||
|
customUploader.GetHeaders(input), null, customUploader.ResponseType, customUploader.GetHttpMethod());
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
byte[] byteArray = Encoding.UTF8.GetBytes(text);
|
byte[] bytes = Encoding.UTF8.GetBytes(text);
|
||||||
using (MemoryStream stream = new MemoryStream(byteArray))
|
using (MemoryStream stream = new MemoryStream(bytes))
|
||||||
{
|
{
|
||||||
result = SendRequestFile(requestURL, stream, fileName, customUploader.GetFileFormName(), args, customUploader.GetHeaders(input),
|
result = SendRequestFile(customUploader.GetRequestURL(), stream, fileName, customUploader.GetFileFormName(),
|
||||||
responseType: customUploader.ResponseType);
|
customUploader.GetArguments(input), customUploader.GetHeaders(input), null, customUploader.ResponseType, customUploader.GetHttpMethod());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
result.Response = SendRequest(customUploader.GetHttpMethod(), requestURL, args, customUploader.GetHeaders(input),
|
result.Response = SendRequest(customUploader.GetHttpMethod(), customUploader.GetRequestURL(), customUploader.GetArguments(input),
|
||||||
responseType: customUploader.ResponseType);
|
customUploader.GetHeaders(input), null, customUploader.ResponseType);
|
||||||
}
|
}
|
||||||
|
|
||||||
try
|
try
|
||||||
|
|
|
@ -75,28 +75,22 @@ public CustomURLShortener(CustomUploaderItem customUploaderItem)
|
||||||
|
|
||||||
public override UploadResult ShortenURL(string url)
|
public override UploadResult ShortenURL(string url)
|
||||||
{
|
{
|
||||||
if (customUploader.RequestType == CustomUploaderRequestMethod.POST && !string.IsNullOrEmpty(customUploader.FileFormName))
|
|
||||||
throw new Exception("'File form name' cannot be used with custom URL shortener.");
|
|
||||||
|
|
||||||
if ((customUploader.Arguments == null || !customUploader.Arguments.Any(x => x.Value.Contains("$input$"))) &&
|
if ((customUploader.Arguments == null || !customUploader.Arguments.Any(x => x.Value.Contains("$input$"))) &&
|
||||||
(customUploader.Headers == null || !customUploader.Headers.Any(x => x.Value.Contains("$input$"))))
|
(customUploader.Headers == null || !customUploader.Headers.Any(x => x.Value.Contains("$input$"))))
|
||||||
throw new Exception("Atleast one '$input$' required for argument or header value.");
|
throw new Exception("Atleast one '$input$' required for argument or header value.");
|
||||||
|
|
||||||
UploadResult result = new UploadResult { URL = url };
|
UploadResult result = new UploadResult { URL = url };
|
||||||
|
|
||||||
CustomUploaderArgumentInput input = new CustomUploaderArgumentInput("", url);
|
CustomUploaderArgumentInput input = new CustomUploaderArgumentInput("", url);
|
||||||
|
|
||||||
Dictionary<string, string> args = customUploader.GetArguments(input);
|
|
||||||
|
|
||||||
if (customUploader.RequestType == CustomUploaderRequestMethod.POST)
|
if (customUploader.RequestType == CustomUploaderRequestMethod.POST)
|
||||||
{
|
{
|
||||||
result.Response = SendRequestMultiPart(customUploader.GetRequestURL(), args, customUploader.GetHeaders(input),
|
result.Response = SendRequestMultiPart(customUploader.GetRequestURL(), customUploader.GetArguments(input), customUploader.GetHeaders(input), null,
|
||||||
responseType: customUploader.ResponseType);
|
customUploader.ResponseType, customUploader.GetHttpMethod());
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
result.Response = SendRequest(customUploader.GetHttpMethod(), customUploader.GetRequestURL(), args, customUploader.GetHeaders(input),
|
result.Response = SendRequest(customUploader.GetHttpMethod(), customUploader.GetRequestURL(), customUploader.GetArguments(input),
|
||||||
responseType: customUploader.ResponseType);
|
customUploader.GetHeaders(input), null, customUploader.ResponseType);
|
||||||
}
|
}
|
||||||
|
|
||||||
try
|
try
|
||||||
|
|
Loading…
Reference in a new issue