Недопустимые ключевые символы при загрузке изображения в формате base64

Я разрабатываю приложения для Windows phone (8.0), и я новичок в этом, я использую приведенный ниже код для отправки изображения на сервер в формате Base64 с помощью почтового клиента.

Uri uri = new Uri(UPLOAD_IMAGE_PATH);
UploadImageData requestData = new UploadImageData();
requestData.image = base64String;
string jsonString = JsonConvert.SerializeObject(requestData);
PostClient proxy = new PostClient(jsonString);
proxy.DownloadStringCompleted += new PostClient.DownloadStringCompletedHandler(proxy_DownloadStringCompleted);
proxy.DownloadStringAsync(uri);

где base64String — строка моего изображения, закодированная в Bae64 с использованием приведенного ниже кода.

internal static string ImageToBase64String(Stream choosenPhoto,Image image)
{
   WriteableBitmap bmp = new WriteableBitmap((BitmapSource)image.Source);
   byte[] byteArray;
   using (MemoryStream stream = new MemoryStream())
   {
     bmp.SaveJpeg(stream, bmp.PixelWidth, bmp.PixelHeight, 0, 100);
     byteArray = stream.ToArray();
     return Convert.ToBase64String(byteArray); 
   }           
}

В ответе ниже он возвращает «disallowed key charaters» на result.

void proxy_DownloadStringCompleted(object sender, WindowsPhonePostClient.DownloadStringCompletedEventArgs e)
{
   string result = e.Result;
}

Но когда я отправляю ту же строку JSON, используя REST Client от Mozilla, ответ JSON от сервера проходит успешно. Я искал об этом и получил несколько ссылок ссылка 1, ссылка 2, что мне нужно разрешить символы на стороне сервера в файле Input.php. Итак, какой именно символ мне нужен позволять. Он работает с REST Client, я что-то пропустил в своем коде C #, пожалуйста, помогите мне


person Raj Kumar    schedule 08.11.2012    source источник
comment
Вы действительно не должны публиковать изображение в виде строки с кодировкой base64 в запросе json. Вместо этого используйте запрос POST с двоичными данными, а .NET API сам выполнит преобразование.   -  person Claus Jørgensen    schedule 09.11.2012
comment
Спасибо, Клаус, но API разрабатываются на PHP, и я не могу это контролировать.   -  person Raj Kumar    schedule 10.11.2012


Ответы (1)


Кажется, в нем явно не упоминается строка Base64 (если я что-то не упустил, никогда не разрабатывая для ОС WinPhone). Вы проверили URL-адрес, на который вы отправляете запрос POST?

person LMS    schedule 08.11.2012