fixed #962: Added Headers support to Custom Uploader

This commit is contained in:
Jaex 2015-10-19 16:26:25 +03:00
parent 4b546661df
commit bbeaae78ad
5 changed files with 26 additions and 6 deletions

View file

@ -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)
{

View file

@ -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<string, string> 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))

View file

@ -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)
{

View file

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

View file

@ -50,7 +50,7 @@ public override UploadResult ShortenURL(string url)
Dictionary<string, string> 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);