CERCA
PER MODELLO
FullScreen Chatbox! :)

Utente del giorno: carotix con ben 2 Thanks ricevuti nelle ultime 24 ore
Utente della settimana: 9mm con ben 7 Thanks ricevuti negli ultimi sette giorni
Utente del mese: 9mm con ben 31 Thanks ricevuti nell'ultimo mese

Pagina 2 di 3 primaprima 123 ultimoultimo
Ultima pagina
Visualizzazione dei risultati da 11 a 20 su 28
Discussione:

Web Login tramite app

Se questa discussione ti è stata utile, ti preghiamo di lasciare un messaggio di feedback in modo che possa essere preziosa in futuro anche per altri utenti come te!
  1. #11
    Androidiano


    Registrato dal
    Dec 2009
    Messaggi
    158

    Ringraziamenti
    10
    Ringraziato 6 volte in 6 Posts
    Predefinito

    Qualche suggerimento per una connessione https?
    Non sono riuscito a trovare nulla purtroppo.

  2.  
  3. #12
    Androidiano


    Registrato dal
    Dec 2009
    Messaggi
    158

    Ringraziamenti
    10
    Ringraziato 6 volte in 6 Posts
    Predefinito

    Vi posto alcuni pezzi di codice nella speranza che possiate avere una panoramica migliore sul mio problema.

    Questi sono due metodi della classe che ho creato per gestire la comunicazione http.
    Il primo effettua la connessione e fa un invio POST, il secondo riceve i dati e li ritorna in forma di stringa.
    La classe l'ho chiamata HttpComm.
    codice:
    	public static HttpResponse doPost(String url, Map<String, String> postData) throws ClientProtocolException, IOException {
    		HttpClient httpClient = new DefaultHttpClient();
    		HttpPost httpPost = new HttpPost(url);
    		if (postData != null && postData.isEmpty() == false) {
    			List<NameValuePair> dataList = new ArrayList<NameValuePair>(postData.size());
    			Iterator<String> iKeys = postData.keySet().iterator();
    			while (iKeys.hasNext()) {
    				String k = iKeys.next();
    				String v = postData.get(k);
    				dataList.add(new BasicNameValuePair(k, v));
    			}
    			httpPost.setEntity(new UrlEncodedFormEntity(dataList));
    		}
    		return httpClient.execute(httpPost);
    	}
    	
    	public static String getResponse(HttpResponse r) throws IOException {
    		InputStream is = r.getEntity().getContent();
    		BufferedInputStream bis = new BufferedInputStream(is);
    		ByteArrayBuffer baf = new ByteArrayBuffer(20);
    		int current = 0;
    		while ((current = bis.read()) != -1) {
    			baf.append((byte) current);
    		}
    		String res = "";
    		res = EntityUtils.toString(r.getEntity());
    //		res = baf.toByteArray().toString();
    		return res /*new String(baf.toByteArray())*/;
    	}
    Qui invece è la parte di codice dove utilizzo la classe per effettuare il login.
    codice:
                    String url = "https://url";
                    String resp = "";
        		Map<String, String> accountValues = new HashMap<String, String>();
        		accountValues.put("username_id", params[0]);
        		accountValues.put("password_id", params[1]);
    		try {
    			HttpResponse r = HttpComm.doPost(url, accountValues);
    			resp = HttpComm.getResponse(r);
    			Log.e("RESPONSE_CODE: ",   Integer.toString(r.getStatusLine().getStatusCode()));
    			Log.e("RESPONSE_STRING: ", resp);
    		}
    		catch (Exception ex){
    			Log.e("!!!ERRORE!!!: ", ex.getMessage());
    		}
    La funzione genera una eccezione nel blocco TRY e l'errore è il seguente:
    "The target server failed to respond".

  4. #13
    Administrator L'avatar di Andrea


    Registrato dal
    Nov 2008
    Messaggi
    3,368
    Smartphone
    Nexus S, myTouch Slide 4g

    Ringraziamenti
    143
    Ringraziato 880 volte in 323 Posts
    Predefinito

    Sicuro non funzioni?

    Twitter @veke87

  5. #14
    Androidiano


    Registrato dal
    Dec 2009
    Messaggi
    158

    Ringraziamenti
    10
    Ringraziato 6 volte in 6 Posts
    Predefinito

    non va, l'errore che mi da è quello!
    Se invece mi collego ad un server prova (quello di anddev.org) in cui c'è una pagina di prova per l'invio http post, va a meraviglia!

  6. #15
    Androidiano


    Registrato dal
    Dec 2009
    Messaggi
    158

    Ringraziamenti
    10
    Ringraziato 6 volte in 6 Posts
    Predefinito

    Ma una connessione https si gestisce in modo diverso per caso?
    Oppure il problema sta nel server che non risponde per colpa sua e non mia?

  7. #16
    Androidiano


    Registrato dal
    Dec 2009
    Messaggi
    158

    Ringraziamenti
    10
    Ringraziato 6 volte in 6 Posts
    Predefinito

    Se come url metto 'http://www.google.com' come "errore" esce: Content has been consumed.

    Sono sempre più confuso!

  8. #17
    Administrator L'avatar di Andrea


    Registrato dal
    Nov 2008
    Messaggi
    3,368
    Smartphone
    Nexus S, myTouch Slide 4g

    Ringraziamenti
    143
    Ringraziato 880 volte in 323 Posts
    Predefinito

    Probabilmente leggi piu di una volta l'HTTPEntity... Sei sicuro di utilizzare solo una volta .getEntity().getContent()?

    Twitter @veke87

  9. #18
    Androidiano


    Registrato dal
    Dec 2009
    Messaggi
    158

    Ringraziamenti
    10
    Ringraziato 6 volte in 6 Posts
    Predefinito

    Si, il problema dell'errore sul sito di Google era effettivamente la ripetizione di getEntity.

    Però il problema sul mio sito target "The target server failed to respond" persiste.

    BOH!

  10. #19
    Androidiano


    Registrato dal
    Dec 2009
    Messaggi
    158

    Ringraziamenti
    10
    Ringraziato 6 volte in 6 Posts
    Predefinito

    Bene, ora sembra andare!
    Ho dovuto implementare una piccola funzione trovata su un tutorial in giro per il web che permette di personalizzare il un HttpClient con parametri e impostazioni e soprattutto implementare una SslFactory per le comunicazioni sicure.

    Posto il codice, se qualcuno ne avesse bisogno:


    Ora il mio problema rimanente sarebbe mantenere la sessione loggata mentre clicco altri link della pagina.
    Qualche piccolo consiglio al riguardo?
    Devo implementare l'uso dei cookie?

  11. #20
    Administrator L'avatar di Andrea


    Registrato dal
    Nov 2008
    Messaggi
    3,368
    Smartphone
    Nexus S, myTouch Slide 4g

    Ringraziamenti
    143
    Ringraziato 880 volte in 323 Posts
    Predefinito

    Io ti consiglio di riutilizzare il DefaulHttpClient ottenuto per la prima istanza. In questo modo non devi fartene nulla dei cookies perchè si arrangia totalmente DefaultHttpClient

    Twitter @veke87

Pagina 2 di 3 primaprima 123 ultimoultimo
Ultima pagina

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire risposte
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Torna su
Privacy Policy