С приведенным ниже кодом я получаю сообщение об ошибке:
Когда я публикую этот веб-API на локальном IIS и загрузлю изображение с xamarin
на сервер, этот код работает нормально, не получая ошибки, но при публикации облака Azure API я сталкиваюсь с ошибкой ниже. Пожалуйста, помогите мне, если кто-нибудь знает
{StatusCode: 400, ReasonPhrase: 'Bad Request', Версия: 1.1, Содержимое:
System.Net.Http.StreamContent, заголовки: {Cache-Control: no-cache
Прагма: без кэширования. Сервер: Microsoft-IIS / 10.0. X-AspNet-версия:
4.0.30319 X-Powered-By: ASP.NET Set-Cookie: ARRAffinity = 7c5bdbe4510de6d1a2b16faa5f8c48d98b00f39fe983a5eac89ec12520de616b; Path = /; HttpOnly; Домен = mitsppk.azurewebsites.net
Дата: среда, 03 апреля 2019 г. 07:28:08 GMT Истекает: -1 Длина контента: 0}}
Код API:
public async Task<IHttpActionResult> Post()
{
if (!Request.Content.IsMimeMultipartContent("form-data"))
{
return BadRequest();
}
string PATH = HttpContext.Current.Server.MapPath("~/assets/ComplaintSystemApp/");
CustomMultipartFormDataStreamProvider provider = new CustomMultipartFormDataStreamProvider(PATH);
List<string> files = new List<string>();
try
{
foreach (MultipartFileData file in provider.FileData)
{
files.Add(Path.GetFileName(file.LocalFileName));
newstreetLightComplaintImg.ImgPath = files[0];
}
return Ok();
}
catch (System.Exception e)
{
return BadRequest();
}
}
Загрузить изображение из xamarin andriod:
using (var client = new HttpClient())
{
var upfilebytes = File.ReadAllBytes(file);
var fileContent = new ByteArrayContent(upfilebytes);
fileContent.Headers.ContentType =
MediaTypeHeaderValue.Parse("application/octet-stream");
fileContent.Headers.ContentDisposition = new
ContentDispositionHeaderValue("form-data")
{
Name = "file",
FileName = "abc.png"
};
string boundary = "---8d0f01e6b3b5dafaaadaad";
MultipartFormDataContent multipartContent = new
MultipartFormDataContent(boundary);
multipartContent.Add(fileContent);
var response = await
client.PostAsync("http://IPaddress/website/api/Img",multipartContent);
var responsestr = response.Content.ReadAsStringAsync().Result;
}