Как вызвать Rest API с Android

#android #capacitor

#Android #конденсатор

Вопрос:

У меня есть Rest API, который в настоящее время работает в режиме HTTPS, 10 дней назад мои API-интерфейсы были запущены в режиме HTTP, для доступа к HTTP-API я использую приведенный ниже процесс:

AndroidMainfest.xml:

        <application
        android:networkSecurityConfig="@xml/network_security_config"> 
  

в папке res / xml, которую я создал network_security_config.xml

network_security_config.xml код:

          <?xml version="1.0" encoding="utf-8"?>
         <network-security-config>
            <domain-config cleartextTrafficPermitted="true">
               <domain includeSubdomains="true">api.***.****.in</domain>
            </domain-config>
         </network-security-config>
  

Затем я могу получить доступ к API из приложения Android, но после преобразования моих API в режим HTTPS я не могу получить к нему доступ.

кто-нибудь может мне помочь с этим.

Комментарии:

1. Вам нужны эти строки, если вы используете HTTP API. Но если вы используете HTTPS API, удалите эти строки, и все будет хорошо.

2. похоже, ваш сертификат не подходит или ему не доверяет Android

3. @jcesarmobile Как я могу добавить сертификат на стороне клиента на Android

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

5. @jcesarmobile Я могу получить доступ к Rest API из браузера, но из приложения для Android я не могу.

Ответ №1:

Вы можете добавить однострочный код в файл манифеста внутри тега приложения.

   android:usesCleartextTraffic="true"
  

Пример:

  <application
    android:name=".MyApplication"
    android:allowBackup="true"
    android:hardwareAccelerated="true"
    android:icon="@drawable/logo"
    android:label="@string/app_name"
    android:largeHeap="true"
    android:supportsRtl="true"
    android:theme="@style/AppTheme"
    android:usesCleartextTraffic="true">
  

Комментарии:

1. Я попытался добавить android:usesCleartextTraffic=»true», но я получаю эту ошибку: E / chromium: [ERROR:ssl_client_socket_impl.cc (946)] сбой рукопожатия; возвращено -1, код ошибки SSL 1, net_error -202