Zoho Remote API - не может сохранить файлы обратно на наш сервер - «Формат документа не поддерживается. Ошибка при сохранении содержимого». - PullRequest
1 голос
/ 24 января 2012

У меня проблема с использованием удаленного API для сохранения документов. Мне удалось настроить сеанс и открыть документ внутри Zoho. Но когда мои пользователи пытаются сохранить документ в Zoho, Zoho выдает следующую ошибку:

"Формат документа не поддерживается. Ошибка сохранения содержимого."

Это происходит для файлов .doc и .txt (только два, которые я пробовал до сих пор). Процедура сохранения где-то умирает внутри Zoho ... мой сервлет, который должен вернуть файлы из Zoho, никогда не сообщает о получении каких-либо POST.

Обратите внимание, что я не прошу Zoho конвертировать форматы файлов ... Я передаю его в формате .doc и запрашиваю обратно .doc или передаю в формате .txt и запрашиваю обратно в .txt.

Вот мои записи в журнале настройки сеанса Zoho ..... как вы видите, все работает.

Вход

20120123 15:37:26 DEBUG [ajp-8009-6] (ZohoAPI)  - setupPrivateEditor using following for POST:
apikey: [redacted]
output: url
mode: normaledit
filename: Test_Doc_06.doc
documentid: 31101
id: 31101
lang: en
format: doc
saveurl: https://app.bizmarx.net/Bizmarx/bizmarx/saveZohoDocument

20120123 15:37:26 DEBUG [ajp-8009-6] (ZohoAPI)  - setupPrivateEditor executing POST
20120123 15:37:28 DEBUG [ajp-8009-6] (ZohoAPI)  - setupPrivateEditor sees response status: 200  :  OK
20120123 15:37:28 DEBUG [ajp-8009-6] (ZohoAPI)  - setupPrivateEditor:  full response string seen as:
URL=[redacted, but functional during testing]
WARNING=NULL
RESULT=TRUE

Ссылки Zoho Remote API:

Это документы, которые я использую для составления своих запросов. К сожалению, они не предоставляют песочницу, поэтому я не могу точно проверить, что они видят с их стороны.

Чтобы настроить приватный сеанс редактирования, я использую многочастную форму отправки, описанную здесь: https://apihelp.wiki.zoho.com/Open-Document.html. Ява-код, который я использую, чтобы соединить это:

MultipartEntity paramsEntity = new MultipartEntity();

paramsEntity.addPart("apikey", new StringBody(apiKey));
paramsEntity.addPart("output", new StringBody(outputType));
paramsEntity.addPart("mode", new StringBody(modeType));
paramsEntity.addPart("filename", new StringBody(fileName));
paramsEntity.addPart("documentid", new StringBody(uid));
paramsEntity.addPart("id", new StringBody(uid));
paramsEntity.addPart("lang", new StringBody(langType));
paramsEntity.addPart("format", new StringBody( type ));
paramsEntity.addPart("saveurl", new StringBody(saveURL));

paramsEntity.addPart("content", new FileBody(documentFile));

post.setEntity(paramsEntity);

response = httpClient.execute(post);

Чтобы сохранить файл после того, как пользователь закончит его редактирование, я следую деталям, данным Zoho (не могу опубликовать URL, потому что это новая учетная запись), хотя я просто использую httpservlet для прослушивания POST вместо создания новой страницы действий. Однако, даже если это вызовет проблемы, это, похоже, не проблема сейчас, так как мои серверы никогда не сообщают о том, что они пингуются Zoho.

Кто-нибудь сталкивался с этой проблемой раньше? Является ли мой исходный POST каким-то образом неправильным, так что документ все равно будет нормально загружаться в Zoho, но Zoho не уверен, где и как его сохранить? Спасибо!

...