2017-06-14 70 views
0

我們正在使用SharePoint 2016來存儲和檢索文件。並使用java httpclient類來做到這一點。現在我們使用以下API來檢查文件夾是否已經存在。SharePoint 2016檢查文件夾存在500內部服務器錯誤

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確定作爲響應,這是正確的。但是,如果文件夾不存在,我得到500內部服務器錯誤。而不是這個,我應該得到404未找到。我錯過了什麼。如何爲相同的API,我得到一個正確的響應(文件夾目前200好)和一個內部服務器錯誤(文件夾不存在500)。

回答

0

4xx錯誤是客戶端錯誤; 5xx錯誤是服務器錯誤。

4xx錯誤意味着您(客戶)在提交請求的方式上犯了錯誤。 5xx錯誤意味着服務器未能履行明顯有效的請求。

404(頁面未找到)的響應表明請求的URI本身無效/當前不存在。如果您嘗試訪問不存在的文件夾的直接路徑(而不是通過調用通過/_api/Web/ URI的Web服務),這將作爲響應有意義。

您所請求的URI是有效的Web服務調用,所以404 Not Found將不是一個合適的響應。

500(內部服務器錯誤)是指示Web服務器在嘗試執行操作時遇到錯誤的通用響應。

在這種情況下,錯誤是由Web服務試圖檢索不存在的文件夾引起的。

+0

您好Thriggle,如果資源未找到(文件夾/文件),則共享點響應404未找到。如果存在的話,它是200好的。在此之前我們使用了Sharepoint 2013,並且我們得到了此響應。但在Sharepoint 2016中,文件搜索給出了相同的響應(200,404),但文件夾響應不同(200,500)。所以你的意思是500是正確的迴應? – rrm