我有一个简单的Web服务,它返回一堆字节。
[WebInvoke(BodyStyle = WebMessageBodyStyle.WrappedRequest)]
public byte[] GetBytes(string key)
{
return Encoding.UTF8.GetBytes("You said " + key);
}
当我发送请求时,它会回复:
<base64Binary xmlns="http://schemas.microsoft.com/2003/10/Serialization/">WW91IHNhaWQgdGVzdA==</base64Binary>
我想回复只有WW91IHNhaWQgdGVzdA==
没有base64Binary
标签 - 我错过了什么?
谢谢!
答案 0 :(得分:0)
您说您正在使用网络服务。因此, 默认内容类型的网络服务(asmx)始终为application/soap+xml
。因此,所代表的内容将采用xml格式。这就是为什么您要返回{ {1}}数组,它将产生的响应将在肥皂体中编码byte[]
。
根据设计,你有上述限制,所以如果你的目的只是返回字节,那么考虑使用
base64
或http处理程序。
答案 1 :(得分:0)
好的,我已经完成了:
[WebInvoke(BodyStyle = WebMessageBodyStyle.WrappedRequest)]
public Stream EchoWithPost(string key)
{
return new MemoryStream(Encoding.UTF8.GetBytes("You said " + key));
}