如果WebMethod返回字符串,则会将其序列化为xml。
我想使用响应的ContentType返回byte[]
- 我是否也可以指定它?。
可以在ASP.NET Web服务Web方法中完成吗?
答案 0 :(得分:2)
ASMX Web服务使用SOAP,内容类型始终为application/soap+xml
,内容代表xml
。即使从方法返回byte[]
,该数组也将被编码到soap体中。
答案 1 :(得分:2)
您可以从Web服务返回一个字节数组,但它仍然会被序列化到响应消息中。 (通常作为SOAP XML响应中的base-64。)
如果您只想返回二进制内容,则不应使用Web服务。相反,您可以将Response.BinaryWrite
与没有html内容的常规页面一起使用,或者在http处理程序中使用context.BinaryWrite
。
答案 2 :(得分:2)
使用Generic Handler(.ashx)代替Web服务。
Generic Handler接受get / post请求,并使您能够通过HttpContext完全控制输出。
我通常使用它们将文件(pdfs等)发送到浏览器。