2
是否可以通过.net(WCF)Rest Full Web服务公开二进制文件。如何在.Net Restful Web服务中公开二进制文件?
我想有我的Web服务器,这是作为一个REST资源上的二进制文件,像
.../API/firmware_2_0
到我的Web服务客户端可以“得到”。
这是可能的,我可以做谁。
我熟悉使用Restful Web服务来提供数据库中数据的JSON表示,但不提供二进制文件。
是否可以通过.net(WCF)Rest Full Web服务公开二进制文件。如何在.Net Restful Web服务中公开二进制文件?
我想有我的Web服务器,这是作为一个REST资源上的二进制文件,像
.../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包装。
??你为什么需要WCF这个?如果它是一个二进制文件,并且您想要*获取它,为什么不让IIS服务它? – Cheeso
假设文件或流正在修改内存中(即你不能让IIS处理它),你可以使用[streaming](http://msdn.microsoft.com/en-us/library/ms789010。 aspx)以http绑定为起点。 – silijon
是的,我在想。但是我已经为其他所有与客户的互动提供了其他服务,我只是想保持一致性。 –