В настоящее время используется LimeSurvey Версия 2.57.1 + 161205
Я использую Remote Control API для загрузки файлов опроса LSS по требованию.
Я использую 3 вызова API:
в этой последовательности.
Работает нормально, но сейчас я нахожу очень странную проблему. Ранее этот конкретный файл LSS загружался нормально без проблем, но теперь я получаю исключение:
fopen(https://some.server.com/lime/admin/remotecontrol): failed to open stream: HTTP request failed!
(some.server.com составлен, фактический домен существует и работает нормально)
Если я захожу на административный портал LimeSurvey, опрос фактически создан! Но поскольку это вызывает исключение, Идентификатор опроса никогда не возвращается вызовом API import_survey, что делает activate_tokens а также activate_survey звонки также не выполняются.
Я использую библиотеку JSON RPC https://github.com/fguillot/JsonRPC
Файл LSS имеет размер 631 КБ, но не уверен, что это проблема, поскольку система успешно импортировала и активировала 2 опроса по 653 КБ.
Примечание: когда я набирал это, я сделал еще один тестовый прогон, на этот раз опрос прошел без проблем. Это очень загадочно. Может ли здесь быть какая-то проблема со временем? Около 5 минут назад этот опрос не удался, но теперь он прошел. Я также проверил это локально на своем компьютере разработчика, который является Macbook Pro на Sierra, и некоторые опросы проваливаются (те, которые проваливаются, превышают 600 КБ).
Ну, это похоже на проблему тайм-аута!
Используемый мной RPC-клиент имеет значение по умолчанию 5 секунд.
Похоже, что LimeSurvey занимает более 5 секунд, чтобы обработать данные LSS свыше 600 КБ (приблизительно).
Поэтому, когда я устанавливаю Клиент, я устанавливаю тайм-аут на 60 секунд, например
$this->ls_rpc_client = new JSONRPClient($api_url);
$this->ls_rpc_client->getHttpClient()->withTimeout(60);
Теперь мой автоматический импортер работает без ошибок.
Может ли это быть вашей проблемой?