Мобильное приложение Discourse Hub для Android не может найти частный сервер

Мой приватный сервер Discourse работает и доступен через браузер и мобильное приложение для iOS.

Однако в Android приложение Discourse Hub не может найти этот сервер. (Оно находит другие серверы, например meta.discourse.org.)

Есть ли идеи, почему это не работает? Возможно, мобильное приложение для Android использует другого агента для доступа к серверу, чем версия для iOS? Или есть какая-то другая причина?

Да, мобильное приложение выполняет несколько специальных запросов, чтобы определить, что URL-адрес указывает на сервер Discourse.

Существует два таких запроса:

  • HEAD-запрос к serverdomain.com/user-api-key/new
  • GET-запрос к serverdomain.com/site/basic-info.json

Если ни один из них не возвращает данные, приложение предполагает, что указанный URL не является сайтом на платформе Discourse.

Очень полезно, @pmusaraj! Спасибо. Для уточнения:

  1. Оба оператора возвращают ответ без ошибки.

  2. Почему версия для iOS успешно проходит эти тесты и подключается к моему серверу, а версия для Android — нет?

Ага, это говорит о том, что с самой платформой Discourse, скорее всего, всё в порядке: проверка сайта одинакова и на iOS, и на Android.

Помню, что некоторые версии и устройства Android строже относятся к SSL-сертификатам. Был похожий случай в прошлом, но очень давно: Community not found in App Android Version 7 - #37 by h.vdheurik

К слову, мой друг тестировал это на чистом Android с тем же результатом. Моё устройство — Pixel 8a с последней версией GrapheneOS.Не может ли это быть новой несовместимостью шифрования, похожей на ту, о которой вы упоминали в 2017 году?

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

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

Затем я добавил OkHttp как единственного разрешённого краулера, и мобильное приложение всё ещё могло подключаться. Кризис предотвращён. :slight_smile:

Спасибо @pmusaraj за проверку кода Android-приложения и совместную работу над этим решением.