这是一个应该返回“Hello World”字符串的简单示例。但是,浏览器会显示类似SGVsbG8gV29ybGQ=
. 从 oldskul 风格的服务返回纯文本的正确方法是什么?
请知道:
我无法返回字符串:三个 Unicode 字符将被自动添加到前面,旧的 HTTP 客户端将无法互操作。
我可以返回 a
Message
,但仍然必须保持解析功能来提取data
变量。AFAIK 不允许在同一方法签名中 混合Message
和键入。int
[ServiceContract(SessionMode=SessionMode.NotAllowed)] public interface IHello { [WebGet(UriTemplate = "manager?data={data}")] [OperationContract] Byte[] DoIt(int data); }
public class Hello : IHello { public Byte[] DoIt(int data) { return Encoding.ASCII.GetBytes("HelloWorld"); } }
更新:这不是乱码,而是正确编码的响应。但是,格式不是我期望收到的。我已经发现(正如下面的先生所建议的那样)传输层消息格式的最终控制是通过Message
类获得的。但是,如果我确实使用了一个 - 我失去了解析请求(UriTemplate
属性)的可能性。因此,很高兴知道如何Message
与UriRequest
.
PS如果“干净”集成是不可能的 - 那么最优雅的解决方法是什么?请问是否有任何代码可以在我的实现中借用和使用的线幕后面完成?