如何使用 Java 通过 web 服务检索 sharepoint 中文档库中文件的大小

Posted

技术标签:

【中文标题】如何使用 Java 通过 web 服务检索 sharepoint 中文档库中文件的大小【英文标题】:How to retrieve the size of a file in a document library in sharepoint through webservices using Java 【发布时间】:2013-04-05 10:01:06 【问题描述】:

我正在用 Java 编写一个应用程序,它必须报告 SharePoint 2007 上文档库中的所有可用文件。该应用程序使用来自 korecky (Project Home) 的 java sharepoint 库。除了几个文件信息之外,我没有得到文件大小,一切都很好。

具体来说,一个请求被发送到调用 GetListItems 方法的 List.asmx 网络服务。

请求如下所示:

<QueryOptions>
    <ViewAttributes IncludeRootFolder="True" Scope="RecursiveAll"/>
    <IncludeMandatoryColumns>
        TRUE
    </IncludeMandatoryColumns>
    <DateInUtc>
        TRUE
    </DateInUtc>
</QueryOptions>

根据 web 服务响应中的几个论坛,应该有一个名为 ows_File_x0020_Size 的可用字段,该字段应该包含一个表示文件大小的 int,但它丢失了。有人知道如何修改请求以接收文件大小吗?

【问题讨论】:

你在设置 ViewFields 吗? 【参考方案1】:

您需要说出要调用的字段(在 ViewFields 中)。最终请求应如下所示:

<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <GetListItems xmlns="http://schemas.microsoft.com/sharepoint/soap/">
      <listName>My Documents List</listName>
      <viewName></viewName>
      <query><Query></Query></query>
      <viewFields>
        <ViewFields Properties="True">
          <FieldRef Name="FileLeafRef"></FieldRef>
          <FieldRef Name="File_x0020_Size"></FieldRef>
        </ViewFields>
      </viewFields>
      <rowLimit>0</rowLimit>
      <queryOptions>
        <QueryOptions>
          <DateInUtc>True</DateInUtc>
          <Paging ListItemCollectionPositionNext=""></Paging>
          <ViewAttributes Scope="Recursive"></ViewAttributes>
          <IncludeAttachmentUrls>True</IncludeAttachmentUrls>
          <IncludeMandatoryColumns>False</IncludeMandatoryColumns>
          <ExpandUserField>False</ExpandUserField>
        </QueryOptions>
      </queryOptions>
    </GetListItems>
  </soap:Body>
</soap:Envelope>

【讨论】:

以上是关于如何使用 Java 通过 web 服务检索 sharepoint 中文档库中文件的大小的主要内容,如果未能解决你的问题,请参考以下文章

如何在 C# 中使用 SHA2 正确签署 SOAP 消息?

应用程序升级到oracle 11g后,无法通过SOAP API Web服务检索数据

如何使用 .net 框架 2.0 在 Web 服务中使用 Web api

如何通过 SFTP 从服务器检索文件?

Exchange Web 服务 - 如何使用 Account 扩展属性检索联系人

使用 Google AppEngine 创建 Java Web 服务