【发布时间】:2015-05-17 19:03:05
【问题描述】:
我尝试从 WinRT 调用 WebAPI。在 WinRT 中,我编写了可序列化的类,我希望将其发送到 WebAPI:
[DataContractAttribute]
public class RecognizeItem
{
[DataMember()]
public string Id { get; set; }
[DataMember()]
public Windows.UI.Xaml.Media.Imaging.BitmapImage Image { get; set; }
}
下一步向服务器发送数据:
RecognizeItem system = new RecognizeItem()
{
Id = login,
Image = LoadImage
};
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
string json = JsonConvert.SerializeObject(system);
HttpContent content = new StringContent(json);
HttpResponseMessage response = await client.PostAsync("api/RecognizeItem/", content);
在 webAPI 的实现中,我实现了一个可序列化的类,如下所示:
[Serializable]
public class RecognizeItem
{
public string Id { get; set; }
public Bitmap Image { get; set; }
}
还有我的 ApiController:
public string Post([FromBody] RecognizeItem image)...
但作为回应,我看到以下状态:
StatusCode:415,ReasonPhrase:“不支持的媒体类型”
我该如何解决这个错误?
【问题讨论】:
-
我认为您的自定义类型中的 BitmapImage 可能会导致问题。序列化前是否尝试过将 Image 属性转换为字节数组?
标签: c# asp.net-web-api windows-runtime