Как отправить объект File в Web API, используя вызов POST в формах Xamarin.? - PullRequest
0 голосов
/ 13 декабря 2018

Мне нужно сделать POST-вызов из моего приложения xamarin forms, где мне нужно загрузить объект File в том виде, в котором он есть в API, используя POST Call. Есть ли способ сделать это возможным.

Ответы [ 2 ]

0 голосов
/ 13 декабря 2018

если вы отправляете файловый объект с использованием Base64 или Byte [], тогда разрешено только ограниченное количество может быть до 2-4 Мб, но если у вас изображение большего размера, чем оно не будет поддерживать.

Итак, Решение - это постпотоковое содержимое, например,

var file = await CrossMedia.Current.PickPhotoAsync(new PickMediaOptions
            {
                PhotoSize = PhotoSize.Full,
                CompressionQuality = 100
            });

Создание объекта из MediaFile как, public MediaFile AttachedImage; и сохранение файла в нем, чтобы поток памяти не терялся.Например, AttachedImage = file

Почтовый индекс API,

HttpClient httpClient = new HttpClient();
MultipartFormDataContent mt = new MultipartFormDataContent();
AttachedImage.GetStream().Position = 0;
StreamContent imagePart = new StreamContent(AttachedImage.GetStream());
imagePart.Headers.Add("Content-Type", ImageType);
mt.Add(imagePart, String.Format("file"), String.Format("bk.jpeg"));

requestMessage.Content = mt;


var response = await httpClient.PostAsync("Your URL", mt);
if (response.IsSuccessStatusCode)
{
    var responseString = await response.Content.ReadAsStringAsync();
    var objRootObjectuploadImage = JsonConvert.DeserializeObject<RootObjectuploadImage>(responseString);
    if (objRootObjectuploadImage != null)
    {

    }
    else
    {

    }
}
else
{
    Loading(ActIndicator, false);
    await DisplayAlert(res.LAlert, "webserver not responding.", res.LOk);
}
0 голосов
/ 13 декабря 2018

НЕТ, невозможно отправить файл объекта.Вы можете отправить как json, конвертировав файл в строку Base64.Это рекомендованное проверенное решение. Эта ссылка содержит код для преобразования туда и обратно из Base64.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...