Клиент Android Open API generator не может подключиться к Django Rest API, созданному с помощью rest framework
Я только что сгенерировал Android-клиент для схемы API, созданной мной самим, и включил разрешение на подключение к Интернету с помощью:
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
Я скопировал код, изменил имя пакета и URL-адреса для api, так что в моем client.api.PhotosApi
классе, например, у меня есть:
public class PhotosApi {
String basePath = "http://10.0.2.2:8000";
ApiInvoker apiInvoker = ApiInvoker.getInstance();
public void addHeader(String key, String value) {
getInvoker().addDefaultHeader(key, value);
}
И весь код генерируется автоматически с помощью https://openapi-generator.tech/. Этот IP-адрес и порт соответствуют IP-адресу моего локального компьютера, поскольку код запущен на эмуляторе Android. Ну, например, когда я использую API для извлечения фотографий, я получаю:
Когда я нажимаю кнопку, которая должна только протестировать API, извлекающий JSON. Я пробовал с localhost, я пробовал с 10.0.2.2 (и, очевидно, с портом 80). Я попытался подключиться к API pokemon, чтобы проверить, есть ли у него подключение к Интернету. Django настроен на запуск сервера на 0.0.0.0:8000 и разрешает хостинг "*", поэтому я не знаю, почему я получаю это время ожидания подключения. Я пытался установить 30-секундный тайм-аут, но все равно получил его. Самым странным фактом является то, что в мобильном браузере я могу получить доступ к API.