В настоящее время я пытаюсь создать приложение, в котором пользователь выбирает фотографию из своей библиотеки (или снимает фотографию) и загружает ее в Imgur. Я уже создал довольно надежный клиент C# Imgur для приложений Windows Forms, но, к сожалению, перенос его на Windows Phone стал катастрофой.Загрузка изображения в Imgur на Windows Phone
Вот код, который я использую:
public void UploadImageAsync(Stream PhotoStream)
{
try
{
WebClient w = new WebClient();
w.Headers["Content-type"] = "application/x-www-form-urlencoded";
string data = "key="+PublicKey+
"&_fake_status=200"+
"&type=base64"+
"&image="+PhotoStreamToBase64(PhotoStream);
w.UploadStringAsync(new Uri("http://api.imgur.com/2/upload", UriKind.Absolute), "POST", data);
}
catch (Exception ex)
{
}
}
string PhotoStreamToBase64(Stream PhotoStream)
{
MemoryStream memoryStream = new MemoryStream();
PhotoStream.CopyTo(memoryStream);
byte[] result = memoryStream.ToArray();
return System.Convert.ToBase64String(result);
}
Что интересно (и разочарование), что кажется, как будто все работает нормально, и я получаю успешный ответ после того, как загрузка завершена , Однако при попытке просмотра изображения после его загрузки результат выглядит следующим образом: http://i.imgur.com/NWY0R.jpg.
Это заставляет меня полагать, что каким-то образом поток изображения преобразуется в массив байтов неправильно или неправильно преобразуется в базовую 64-строчную строку. В любом случае, я не могу заставить его работать, и у меня полная потеря. Кто-нибудь знает? Любая помощь будет принята с благодарностью.
Вы знаете Imgur дает полное [C# API пример] (http://api.imgur.com/examples#uploading_cs), не так ли? Если вы используете ту же логику, что и ваш код не работает, вероятно, способ, которым вы открываете изображение, неверен (или ваше изображение повреждено). – qJake
Ах да, я действительно знал пример, когда я делал свой первоначальный клиент. Я следовал их логике кодирования в этом примере, и это работало как шарм, так что спасибо за то, что вы натолкнули меня в правильном направлении! –