11 messaggi dal 04 novembre 2020
Ciao, ho creato un'app per android con xamarin, ora ho la necessità di chiamare una web api.
Di seguito il codice che ho scritto per eseguire questa chiamata:
 public class RestService
    {
        HttpClient _client;

        public RestService()
        {
            _client = new HttpClient();
        }

        public async Task<bool> CheckTestApiAsync(string uri)
        {
            bool result = false;
            try
            {
                Uri _uri = new Uri(uri);
                HttpResponseMessage response = await _client.GetAsync(_uri);
                if (response.IsSuccessStatusCode)
                {
                    string content = await response.Content.ReadAsStringAsync();
                    result = JsonConvert.DeserializeObject<bool>(content);
                }
            }
            catch (Exception ex)
            {
                Debug.WriteLine($"\tERROR {0}", ex.Message);
            }

            return result;
        }
        
    }


Sembra ok, ma quando arriva alla riga :
HttpResponseMessage response = await _client.GetAsync(_uri);

l'app si blocca e in console ottengo il seguente messaggio:
[NetworkSecurityConfig] Using Network Security Config from resource network_security_config debugBuild: true

Nel file AndroidManifest.xml ho inserito la riga:
android:networkSecurityConfig="@xml/network_security_config">

e il file network_security_config e strutturato come segue:
<?xml version="1.0" encoding="utf-8" ?>
<network-security-config>
  <base-config cleartextTrafficPermitted="true" />  
</network-security-config>


Qualcuno può aiutarmi?
Grazie
1 messaggio dal 07 ottobre 2010
Ciao,
xamarin ha una confgurazione di default nell'utilizzo di chiamate http a seconda della versione di sdk utilizzata. In ogni caso non dovresti arrivare a customizzare la network config per chiamate api rest come la tua.
Hai dato i permessi di accesso alla rete sul file manifest?
11 messaggi dal 04 novembre 2020
Ciao, ho visto solo ora la risposta(dopo qualche giorno di attesa non ci speravo più) e ti ringrazio il manifest e questo sotto:

<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionCode="1" android:versionName="1.0" package="com.companyname.onsales" android:installLocation="auto">
  <uses-sdk android:minSdkVersion="23" android:targetSdkVersion="28" />
  <application   
    android:networkSecurityConfig="@xml/network_security_config">    
  </application>  
  <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
  <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
  <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
  <uses-permission android:name="android.permission.INTERNET" />
  <uses-permission android:name="android.permission.BLUETOOTH" />
  <uses-permission android:name="android.permission.BLUETOOTH_PRIVILEGED" />
  <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />  
  <uses-permission android:name="android.permission.READ_PHONE_STATE" />
</manifest>


Ho cercato su internet faccio quello che viene riportato ma mi continua a dare lo stesso messaggio e l'app si blocca.

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.