.net - 如何在 .Net Restful Web 服务中公开二进制文件?

标签 .net wcf rest

是否可以通过 .net (WCF) Rest Full Web 服务公开二进制文件。

我想在我的网络服务器上有一个二进制文件,它可以作为休息资源使用,比如

.../api/firmware_2_0

我的 Web 服务客户端可以“获取”。

这可能吗,谁能做到。

我熟悉使用 Restful Web 服务来提供数据库中数据的 JSON 表示,但不熟悉二进制文件。

最佳答案

虽然我同意在大多数情况下 IIS 应该用于提供文件服务,但在某些情况下您实际上希望通过 RESTful WCF 服务公开原始二进制文件。

来自 http://blogs.msdn.com/b/carlosfigueira/archive/2008/04/17/wcf-raw-programming-model-web.aspx ,

[OperationContract]
[WebGet(UriTemplate = "?url={uri}")]
public Stream GetBinary(string uri)
{
    var binary = new byte[0]; // some sort of query
    var mimeType = ""; // some sort of query
    WebOperationContext.Current.OutgoingResponse.ContentType = mimeType;
    return new MemoryStream(binary);
}

现在意识到,在执行此操作时,您完全绕过了 WCF 的格式设置。因此,不会有任何 xml/json 包装。

关于.net - 如何在 .Net Restful Web 服务中公开二进制文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10810455/

相关文章:

c# - 将选项设置为 FbTransaction

Java - 尽管 Postman 调用有效,但不允许使用 RestTemplate 405 方法

javascript - 计数值在使用 REST 调用获取的数据中重复的次数

wcf - 除了 RESTful HTTP 之外,我还应该支持其他任何东西吗?

rest - 功能测试:通过Grails中的REST API上传文件

古巴的.NET CultureInfo?

c# - 如何使用反射调用泛型方法?

c# - 回调的通用存储

c# - 无法将类型 'bool' 隐式转换为 'system.threading.tasks.task bool'

c# - 如何避免在 web.config 中添加程序集版本?