Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Перестал работать метод GenerateDocumentZip с ошибкой 400 Could not get boxId from query param #117

Closed
Edw-K opened this issue Jul 1, 2021 · 3 comments

Comments

@Edw-K
Copy link

Edw-K commented Jul 1, 2021

Добрый день.
Прошу прощения, Промахнулся проектом в
diadoc/diadocsdk-csharp#852
но cSharp тоже есть в тестовом варианте - пока руки не дошли посмотреть им.

Используется апи diadocsdk-cpp-versions-1.92.3.zip
Но проблема возникла еще на diadocsdk-cpp-versions-1.92.0.zip 28.06.2021.
У нас повторилась. На момент проверки ничего не менялось с марта 2021( тогда был переход на апи 1.92.0).
Возможно связано с переходом на V3
Вот здесь осталось
TaskResult DiadocApi::GenerateDocumentZip(const std::wstring& boxId, const std::wstring& messageId, const std::wstring& documentId, bool fullDocflow)
{
std::wstringstream buf;
buf << "?boxId=" << StringHelper::CanonicalizeUrl(boxId) << L"&messageId=" << StringHelper::CanonicalizeUrl(messageId) << L"&documentId=" << StringHelper::CanonicalizeUrl(documentId);

Ну и наверное проблема будет в ShelfDownload
В других местах buf << L"/V3/GetDocuments?boxId="

@Edw-K
Copy link
Author

Edw-K commented Jul 1, 2021

В общем выяснил, что причина в
GenerateDocumentZip(
buf << "**?**boxId=" << StringHelper::CanonicalizeUrl(boxId) << L"&messageId=" << StringHelper::CanonicalizeUrl(messageId) << L"&documentId=" << StringHelper::CanonicalizeUrl(documentId);
Знак вопроса лишний.
В итоге получил такую строку запроса
PerformAsyncHttpRequest /GenerateDocumentZip??boxId=2c47a7a.........

Просьба исправить. Видимо раньше ?? гасилось.
В C# не смотрел в чем причина, но такая же ошибка там тоже есть.
Хорошо бы, чтобы была возможность добавить режим вывода протокола запроса.
Я для поиска сделал так
void AddProtocolAPI(std::string str)
{
std::ofstream fout("diadoc_dll.log", std::ios_base::app);
fout << str << "\n";
fout.close();
}
А в функции вызвал
AddProtocolAPI("PerformAsyncHttpRequest " + StringHelper::Utf16ToUtf8(buf.str() ));
Или просьба подсказать, чем можно проследить запросы к апи.

@Capucinimo
Copy link
Contributor

Привет! Обновите сдк. В последней версии как раз это пофиксили https://github.com/diadoc/diadocsdk-cpp/releases/tag/versions%2F1.92.5

@Edw-K
Copy link
Author

Edw-K commented Jul 2, 2021

Спасибо. На последней версии все работает.

@Edw-K Edw-K closed this as completed Jul 2, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants