当前位置: 首页 > 面试题库 >

Web服务可以返回流吗?

莫飞翮
2023-03-14
问题内容

我一直在写一个小应用程序,使人们可以向我上传和下载文件。我已在此应用程序中添加了一个Web服务,以这种方式提供上载/下载功能,但我不太确定我的实现将如何处理大文件。

目前,上传和下载方法的定义如下(使用Apache CXF编写):

boolean uploadFile(@WebParam(name = "username") String username,
    @WebParam(name = "password") String password,
    @WebParam(name = "filename") String filename,
    @WebParam(name = "fileContents") byte[] fileContents)
    throws UploadException, LoginException;

byte[] downloadFile(@WebParam(name = "username") String username,
    @WebParam(name = "password") String password,
    @WebParam(name = "filename") String filename) throws DownloadException,
    LoginException;

因此,该文件将作为字节数组上传和html" target="_blank">下载。但是,如果我有一个愚蠢的文件大小(例如1GB),那肯定会尝试将所有信息放入内存,并导致我的服务崩溃。

所以我的问题是-是否可以返回某种流?我可以想象这将不会完全独立于OS。尽管我了解Web服务背后的理论,但实际方面仍然是我需要了解的一些信息。

为任何意见加油,李


问题答案:

StephenDenne)的Metro实施可以满足您的要求。在简短解释之后,下面提供了我的答案。

使用HTTP作为消息协议构建的大多数Web
Service实现都是REST兼容的,因为它们仅允许简单的收发模式,仅此而已。由于所有各种平台都可以理解这种简单的体系结构(例如,与.NET
Web服务通信的Java Web服务),因此可以极大地提高互操作性。

如果要保持此状态,可以提供分块。

boolean uploadFile(String username, String password, String fileName, int currentChunk, int totalChunks, byte[] chunk);

如果您没有以正确的顺序获取块(或者您可以只要求以正确的顺序来获取块),这将需要一些工作量,但是它可能很容易实现。



 类似资料:
  • 这个问题可能有点抽象,但我正试图用做些什么,我被卡住了。 基本场景是这样的,我通过 Camel 公开一个 Web 服务 A,在这个服务中,有一个基于内容的路由来决定我是否必须调用 B 或 C,我想调用正确的路由,并且让 或 的响应成为我的服务 的响应 我已经使用 公开了网络服务,它运行良好,但我不知道之后如何进行路由,我想到了这个: 我不确定这是否是最好的方法,甚至这是否正确,但这是我想出来的。

  • 问题内容: 我想使用ajax和jquery将表单发布到.asmx Web服务,并将Web服务的值作为JSON返回。 我正在使用ASP.NET 4.0。我知道,为了从Web服务返回JSON,需要设置以下内容(1)dataType:“ json”(2)contentType:“ application / json; charset = utf-8”,(3)类型:“ POST” (4)将数据设置为某物

  • 问题内容: 早上, 我需要从Web服务返回一条消息。以下是我的代码示例,我正在返回一个字符串。 我目前收到以下回应… 我理想上想返回类似 我敢肯定,一旦我有了主意,就可以在需要时退还其他物品。这只是我需要解决的基础。 非常感谢所有帮助,在此先感谢:) 更新:刚发现这个… 我需要类似的东西吗 问题答案: 用: 返回的结果将类似于:

  • 问题内容: 我有一个用于Web应用程序的ASP.net Web服务,该服务根据我调用的函数向我返回XML或JSON数据。到目前为止,这一直很好,但是我遇到了一个问题。我想在我的页面上创建一个“导出”链接,该链接将下载一个JSON文件。链接的格式非常简单: 您可能会想到,这应该导出项目2。到目前为止,很好,是吗? 问题是,由于我没有特别要求接受的内容类型是JSON,因此ASP.net绝对拒绝发回除X

  • 我正在尝试将Jersey RESTful服务部署到Google AppEngine上。我可以让它使用标准,但是,我计划使用PostgreSQL数据库,所以我需要使用flex。该应用程序在本地jetty服务器上运行良好,但我在路由和日志中得到了返回。 我得到的例外情况是: JAVAlang.IllegalStateException:com上没有可用的上下文。谷歌。云运行时。码头9。部署检查。lif

  • 问题内容: 我正在使用.Net framework 2.0 / jQuery对2.0 Web服务进行Ajax调用。无论我在ajax调用中将contentType设置为什么,该服务始终返回XML。我希望它返回Json! 这里是电话: 这是Fiddler中请求标头的样子: 我尝试将contentType设置为’text / json’并获得相同的结果。 这是Web服务方法: 这是它返回的内容: 有人知