0

我们使用 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)。

4

1 回答 1

0

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

4xx 错误意味着您(客户)在提交请求的方式上犯了错误。5xx 错误意味着服务器未能完成明显有效的请求。

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

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

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

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

于 2017-06-14T15:12:50.550 回答