0

Следующий код, отвечающий за загрузку изображений:Win Phone 8/Asp .Net API Web Image Загрузить

[HttpPost] 
public async Task<HttpResponseMessage> Upload() 
{ 
    if (!Request.Content.IsMimeMultipartContent()) 
    { 
     throw new HttpResponseException(HttpStatusCode.UnsupportedMediaType); 
    } 

    var streamProvider = new MultipartMemoryStreamProvider(); 

    Cloudinary cloudinary = new Cloudinary(ConfigurationManager.AppSettings.Get("CLOUDINARY_URL")); 

    return await Request.Content.ReadAsMultipartAsync(streamProvider).ContinueWith(t => 
    { 
     if (t.IsFaulted || t.IsCanceled) 
      throw new HttpResponseException(HttpStatusCode.InternalServerError); 

     var content = streamProvider.Contents.FirstOrDefault().ReadAsStreamAsync(); 

     ImageUploadParams uploadParams = new ImageUploadParams() 
     { 
      File = new CloudinaryDotNet.Actions.FileDescription(Guid.NewGuid().ToString(), content.Result) 
     }; 

     ImageUploadResult uploadResult = cloudinary.Upload(uploadParams); 

     string url = cloudinary.Api.UrlImgUp.BuildUrl(String.Format("{0}.{1}", uploadResult.PublicId, uploadResult.Format)); 

     return Request.CreateResponse<MediaModel>(HttpStatusCode.Created, new MediaModel { URL = url }); 
    }); 
} 

Он работает через запрос JQuery пост. Тем не менее, в выигрыше телефона 8 приложения, следующий код не кажется, чтобы сделать запрос к API:

public async Task<string> UploadImage(byte[] image) 
{ 
    var client = new HttpClient(); 

    var content = new MultipartFormDataContent(); 

    var imageContent = new ByteArrayContent(image); 

    imageContent.Headers.ContentType = MediaTypeHeaderValue.Parse("image/jpeg"); 

    content.Add(imageContent, "image", string.Format("{0}.jpg", Guid.NewGuid().ToString())); 

    return await client.PostAsync(baseURL + "image/Upload", content).Result.Content.ReadAsStringAsync().ContinueWith(t => 
    { 
     return t.Result; 
    }); 
} 

Что здесь проблема? Надеюсь, кто-то может показать мне правильное использование httpclient.

+0

Какое сообщение об ошибке вы получите? – tugberk

+0

Это не исключение. Приложение просто не может запросить api, но другие методы api (например, методы Get) работают нормально. – onatm

ответ

1

Это классическая турецкая проблема. Изменение «image/Upload» на «Image/Upload» решило проблему.