2016-03-11 3 views
0

Я пытаюсь загрузить файл по его уникальному идентификатору (GUID), а в 99% он работает нормально, но есть случаи, когда я получаю http не найден - 404 Но я знаю, что файл существует, и я знаю, что это уникальный идентификатор, из метаданных, которые я получил из библиотеки документов. Как файл не может быть найден, если у меня есть его метаданные в руках?Sharepoint REST getfilebyid иногда возвращает - 404 - не найден

Я делаю следующее (Java):

//itemID is taken from the library listing (using web service) as uniqueid (guid) 
String requestUrl = site + "/_api/web/GetFileById('" + itemID.substring(1, itemID.lastIndexOf('}')) + "')/$value"; //Remove {} from the unique id 
HttpGet request = new HttpGet(requestUrl); 
// setting auth credentials to the request. 
RequestConfig requestConfig = RequestConfig.custom().setConnectTimeout(60000).build(); 
request.setConfig(requestConfig); 
request.addHeader("accept", "application/json; odata=verbose"); 
HttpResponse result = httpClient.execute(request); 
int iRet = result.getStatusLine().getStatusCode(); //Here iRet = 404, sometimes. 

Благодаря

+0

Вы можете поделиться своим кодом, который может помочь нам воспроизвести или посмотреть на проблему? С предоставленной вами информацией я мог бы также сказать, что выравнивание магнитного поля Земли виновато. – JanR

+0

Я обновил вопрос, спасибо за ваш комментарий. – SlavaG

+0

Кажется, что нет ответа на это, даже от Microsoft :( – SlavaG

ответ

0

Из предыдущего опыта я хотел бы посмотреть на замок с помощью одновременных соединений. Я вижу, что у вас есть тайм-аут 60 с (setConnectTimeout (60000)) в вашем коде. Например, вы пробовали, если один запрос возвращает действительный результат, а после (скажем, 120) вы дважды пытаетесь выполнить тайм-аут 60 секунд, он возвращает 404?

+0

Привет, нет параллельных подключений, на многих документах код работает нормально, но на некоторых документах он никогда не возвращается, просто возвращает 404. – SlavaG