带有字节的C#WebService响应

时间:2016-01-30 08:17:43

标签: c# web-services

我有一个简单的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标签 - 我错过了什么?

谢谢!

2 个答案:

答案 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));
}