Я использую imgur API для загрузки изображений, но получаю исключение в этой строке:
string uploadRequestString = "image=" + Uri.EscapeDataString(Convert.ToBase64String(imageData)) + "&key=" + apiKey;
Неверный URI: слишком длинная строка Uri.
Полный код:
public static string PostToImgur(string imagFilePath, string apiKey)
{
byte[] imageData;
FileStream fileStream = File.OpenRead(imagFilePath);
imageData = new byte[fileStream.Length];
fileStream.Read(imageData, 0, imageData.Length);
fileStream.Close();
string uploadRequestString = "image=" + Uri.EscapeDataString(Convert.ToBase64String(imageData)) + "&key=" + apiKey;
HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create("http://api.imgur.com/2/upload");
webRequest.Method = "POST";
webRequest.ContentType = "application/x-www-form-urlencoded";
webRequest.ServicePoint.Expect100Continue = false;
StreamWriter streamWriter = new StreamWriter(webRequest.GetRequestStream());
streamWriter.Write(uploadRequestString);
streamWriter.Close();
WebResponse response = webRequest.GetResponse();
Stream responseStream = response.GetResponseStream();
StreamReader responseReader = new StreamReader(responseStream);
string responseString = responseReader.ReadToEnd();
XmlDocument doc = new XmlDocument();
doc.InnerXml = responseString;
XmlElement root = doc.DocumentElement;
responseString = root.GetElementsByTagName("original")[0].InnerText;
return responseString;
}
Работает для файлов меньшего размера, но выдает эту ошибку для больших файлов.