我有一个 web api 控制器方法如下:
[HttpPost]
public string PostMethod(int id)
{
Stream downloadStream = Service.downloadStream(id);
JavaScriptSerializer jsonSerializer = new JavaScriptSerializer();
string output = jsonSerializer.Serialize(downloadStream);
}
我从 java applet 调用此方法,其 url 为:
http://localhost1/api/PostMethod/1
我在第 3 行得到一个异常,如下所示:
“此流不支持超时,‘ObjectContent`1’
类型无法序列化内容类型“application/json”的响应正文;
字符集=utf-8'。”
可能的解决方案是什么?如何通过 Webapi 控制器方法将流作为 JSON 对象发送?
Web Api 支持内容协商,您不需要序列化对象只需返回它。
Web Api 将根据客户端的要求自动返回 XML 或 Json 给客户端
content-type: application/json
Web 浏览器通常会获取 XML,而 JavaScript 会获取 Json。您的 java 小程序只需要上面的标头(实际上看起来可能已经发送了)。
[HttpPost]
public string PostMethod(int id)
{
Stream downloadStream = Service.downloadStream(id);
System.IO.MemoryStream memoryStream = new System.IO.MemoryStream();
downloadStream.CopyTo(memoryStream);
return memoryStream.ToString();
}
这在很大程度上取决于 downloadStream 方法返回的内容;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)