具有字节的 C# Web 服务响应

本文关键字:Web 服务 响应 字节 | 更新日期: 2023-09-27 18:32:29

我有一个简单的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>

我想得到的回应只是没有base64Binary标签的WW91IHNhaWQgdGVzdA== - 我错过了什么?

谢谢!

具有字节的 C# Web 服务响应

好的,我已经完成了:

[WebInvoke(BodyStyle = WebMessageBodyStyle.WrappedRequest)]
public Stream EchoWithPost(string key)
{
    return new MemoryStream(Encoding.UTF8.GetBytes("You said " + key));
}

你说你正在使用网络服务。因此,Web 服务 (asmx) 的默认内容类型始终为 application/soap+xml 。因此,表示的内容将采用 xml 格式。这就是为什么虽然你返回byte[]数组,但它将产生的响应将base64编码在肥皂体中。

根据设计,您有上述限制,因此如果您的目的只是返回字节,请考虑使用

Response.BinaryWrite或 http 处理程序。