【问题标题】:SharePoint 2016 check folder exists 500 internal server errorSharePoint 2016 检查文件夹存在 500 内部服务器错误
【发布时间】:2017-11-16 15:56:49
【问题描述】:

我们使用 SharePoint 2016 来存储和检索文件。并使用 java httpclient 类来做到这一点。现在我们正在使用以下 API 来检查文件夹是否已经存在。

String folderURI = "/_api/Web/GetFolderByServerRelativeUrl('" + "/<document library/folderpath>" + "')";

e.g : folderpath = test1/type/2007

以下是联系 SharePoint 并获得响应的代码。

HttpGet httpget = new HttpGet(finalURL);  
httpget.setHeader("Content-Type", "application/octet-stream");  
httpget.setHeader("X-HTTP-Method", requestMethod);  
httpget.setHeader("Cookie", "rtFa="YqLvkl";FedAuth="uZnxt");

response = httpClient.execute((HttpUriRequest) httpget);

如果文件夹已经存在,我会得到 200 ok 作为响应,这是正确的。但如果文件夹不存在,我会收到 500 内部服务器错误。而不是这个,我应该得到 404 Not Found。我错过了什么。为什么相同的 API,我得到一个正确的响应(文件夹存在 200 ok)和一个内部服务器错误(文件夹不存在 500)。

【问题讨论】:

    标签: directory internal-server-error sharepoint-2016


    【解决方案1】:

    4xx 错误是客户端错误; 5xx 错误是服务器错误。

    4xx 错误意味着您(客户)提交请求的方式有误。 5xx 错误意味着服务器未能满足明显有效的请求。

    响应 404(未找到页面)表示请求的 URI 本身无效/当前不存在。如果您尝试访问不存在的文件夹的直接路径(而不是通过 /_api/Web/ URI 调用 Web 服务),这作为响应是有意义的。

    您请求的 URI 是有效的 Web 服务调用,因此 404 Not Found 不是适当的响应。

    500(内部服务器错误)是表示 Web 服务器在尝试执行操作时遇到错误的通用响应。

    在这种情况下,错误是由 Web 服务试图检索不存在的文件夹引起的。

    【讨论】:

    • 嗨 Thriggle,如果找不到资源(文件夹/文件),则共享点响应为 404 未找到。如果存在,它是 200 好的。我们在此之前使用了 sharepoint 2013,我们得到了这个响应。但是在 sharepoint 2016 中,文件搜索给出了相同的响应(200,404),但文件夹响应不同(200,500)。所以你的意思是500是正确的反应??
    猜你喜欢
    • 1970-01-01
    • 2012-08-30
    • 2016-02-19
    • 2018-03-26
    • 2020-11-28
    • 1970-01-01
    • 2019-01-17
    • 2011-10-17
    • 2010-11-15
    相关资源
    最近更新 更多