Я пытаюсь отправить jpeg как массив байтов из телефона в веб-API. Изначально изображение, снятое телефоном, составляет около 2 МБ с размерами 2000х3500, поэтому я уменьшил его до размеров примерно 300х500, что приносит размер изображения примерно до 135 тыс.
Приложение по-прежнему занимает около 10 секунд или около того, чтобы отправить его в веб-API по приведенному ниже коду, если не использовать WiFi, а иногда просто не удается (из-за размера, на который я верю, или таймаута где-то).
HttpResponseMessage response = await client.PostAsJsonAsync("api/Send", msg);
Есть ли способ сжать jpeg, чтобы я мог отправить его в WebAPI с телефона, не делая его маленьким?
Я передаю некоторую другую информацию вместе с массивом байтов в объекте, например идентификатор пользователя и т.д.
Спасибо за любые указатели!
Я не нашел способ сделать передачу быстрее. Существует два варианта для Windows Phone. Либо выполните "отправку" уведомления и удерживайте пользовательский интерфейс... однако это не мешает им отказаться от приложения.
Класс BackgroundUploader является другим методом, но работает только с Windows Phone 8.1, и вы можете загружать только файлы, а не объекты; http://msdn.microsoft.com/library/windows/apps/windows.networking.backgroundtransfer.backgrounduploader.aspx
Я думаю, вы можете включить буферизацию в веб-api. Это может помочь вам ускорить загрузку. Интерфейс, который используется для включения буферизации в веб-API, - это IHostBufferPolicySelector
Я не пробовал, но эта ссылка может вам помочь.