Я создал в Xamarin Forms
для iOS
функцию HttpClient
для отправки изображения с устройства на мой сервер. Основная функция
var content = new MultipartFormDataContent();
var fileContent = new ByteArrayContent(fileBytes);
fileContent.Headers.ContentType = MediaTypeHeaderValue.Parse("multipart/form-data");
fileContent.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment")
{
FileName = fName
};
fileContent.Headers.ContentDisposition.Parameters
.Add(new NameValueHeaderValue("userId", UserId.ToString()));
content.Add(fileContent);
using (var client = new HttpClient()) {
client.DefaultRequestHeaders.Add("authenticationToken", SyncData.Token);
HttpResponseMessage response = await client.PostAsync(url, content);
if (response.IsSuccessStatusCode)
{
// more code
}
}
Я использую System.Net.Http
. Я пытался использовать ту же функцию для проекта в Android, но, к удивлению, она не работает. Проблема в шапке: если я просматриваю fileContent
то вижу все ключи но для вебапи на сервере FileName
не принимается.
После некоторых журналов я изменил эту функцию, добавив больше client.DefaultRequestHeaders
вроде
client.DefaultRequestHeaders.Add("FileName", fName);
Теперь webapi получает параметр FileName
.
Теперь мой вопрос: что я сделал не так?