Autore Topic: WEB API 2 web service  (Letto 323 volte)

Offline Simone Oprandi

  • Nuovo arrivato
  • *
  • Post: 1
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Huawei P8 Lite
  • Sistema operativo:
    Windows 10
WEB API 2 web service
« il: 28 Agosto 2015, 12:03:43 CEST »
0
Ciao a tutti, premessa, sono uno sviluppatore .net dopo aver provato varie strade per realizzare app android ho deciso di installare Android Studio avendo idea che sia un buon compromesso tra le varie soluzioni.

Sto creando una semplice app con cui leggere un QrCode e acquisire foto da inviare poi a un server (IIS in questo caso) su cui sono configurati servizi WEB API 2.

Volevo testare il servizio di login ma mi sono già fermato. il servizio già usato per alcun webapp resituisce un json con un token di autenticazione che va a scadere nelle 24 successive alla creazione.

questo è il codice con cui cerco di collegarmi al servizio ma che genera la seguente eccezione android.os.NetworkOnMainThreadException

Codice: [Seleziona]
EditText loginEditText = (EditText) findViewById(R.id.txtLogin);
EditText passEditText = (EditText) findViewById(R.id.txtPassword);
String login = loginEditText.getText().toString();
String password = passEditText.getText().toString();

// TODO, create the task to call the REST API
try {

    HttpURLConnection c = null;
    URL u = new URL("[url=http://rest.xxxxx.it/api/GetToken/"]xxxxx.it - Ce site est en vente! - Portail d'informations[/url] + login + "/" + password);
    c = (HttpURLConnection) u.openConnection();

    c.setRequestMethod("GET"); <-- qui solleva l'eccezione
    c.setRequestProperty("Content-length", "0");
    c.setUseCaches(false);
    c.setAllowUserInteraction(false);
    c.setConnectTimeout(0);
    c.setReadTimeout(0);

    c.connect();
    int status = c.getResponseCode();

   
}
catch(Exception e) {
    Log.e("ERROR", e.getMessage(), e);
    //return null;
}


se controllo il valore di c.connected con l'evaluate del compilatore restituisce true (penso significhi che si siano connesso...).

Scusate l'ovvietà magari della mia domanda ma se avete idee o suggerimenti per risolvere questo problema ve ne sono grato.

Grazie
Simone

Offline Ohmnibus

  • Utente senior
  • ****
  • Post: 593
  • Respect: +132
    • Google+
    • @ohmnibus
    • Mostra profilo
    • Lords of Knowledge GdR
  • Dispositivo Android:
    Samsung Galaxy Nexus
  • Play Store ID:
    Ohmnibus
  • Sistema operativo:
    Windows 7 x64
Re:WEB API 2 web service
« Risposta #1 il: 28 Agosto 2015, 12:45:32 CEST »
0
Se non ricordo male NetworkOnMainThreadException significa che stai creando una connessione sullo UI-Thread, ossia il thread principale, e questo non è consentito: una connessione internet è potenzialmente un'operazione impegnativa e non deve bloccare il thread principale.

Prova ad usare un AsyncTask.
Ohmnibus
Le mie app su Play Store

È stata trovata una soluzione al tuo problema? Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato.