Autore Topic: Thread HttpClient  (Letto 1785 volte)

Offline Auron

  • Utente junior
  • **
  • Post: 104
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    Motorola Milestone Android 2.2.1
  • Sistema operativo:
    Windows
Thread HttpClient
« il: 09 Agosto 2011, 12:07:31 CEST »
0
Ho debuggato questo mio codice modificato dal già esistente di Massimo Carli (del libro Android) e ho inserito in più dei Log.i per vedere il compilatore che percorso seguiva.

Le 2 classi son queste:
Codice (Java): [Seleziona]
import org.apache.http.HttpVersion;
import org.apache.http.client.HttpClient;
import org.apache.http.conn.ClientConnectionManager;
import org.apache.http.conn.scheme.PlainSocketFactory;
import org.apache.http.conn.scheme.Scheme;
import org.apache.http.conn.scheme.SchemeRegistry;
import org.apache.http.conn.ssl.SSLSocketFactory;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager;
import org.apache.http.params.BasicHttpParams;
import org.apache.http.params.HttpParams;
import org.apache.http.params.HttpProtocolParams;
import org.apache.http.protocol.HTTP;

import android.app.Application;
import android.util.Log;

/**
 * @author MASSIMO
 *
 */

public class CustomApplication extends Application {
        /*
         * Tag del Log
         */

        private final static String LOG_TAG = "CustomApplication";
       
        /*
         * Riferimento all'HttpClient
         */

        private HttpClient httpClient;
        private String user="user1";
       

        @Override
        public void onCreate() {
                super.onCreate();
                // Inizializziamo il riferimento all'HttpClient Thread Safe
                httpClient = createHttpClient();
        }

        @Override
        public void onLowMemory() {
                super.onLowMemory();
                Log.i(LOG_TAG,"Low Memory!!");
                // Rilasciamo le risorse del client
                releaseHttpClient();
        }

        @Override
        public void onTerminate() {
                super.onTerminate();
                Log.i(LOG_TAG,"Terminate CustomApplication");
                // Rilasciamo le risorse del client
                releaseHttpClient();           
        }
       
        /**
         * @return Il riferimento all'HttpClient ThreadSafe
         */

        public HttpClient getThreadSafeHttpClient(){
                return httpClient;
        }
       
        /*
         * Incapsula la logica di creazione del client
         */

        private final HttpClient createHttpClient(){
                // Per creare il corrispondente ThreadSafeClientConnManager abbiamo
                // bisogno delle informazioni relative al tipo di protocollo che intendiamo
                // gestire. Nel nostro caso definiamo il supporto per l'HTTP e l'HTTPS attraverso
                // la definizione di alcuni parametri e schemi
                HttpParams httpParams = new BasicHttpParams();
                //httpParams.setParameter("usrname", user);
                // Impostiamo la versione del protocollo HTTP alla 1.1
                HttpProtocolParams.setVersion(httpParams, HttpVersion.HTTP_1_1);
                // Impostiamo il charset di default
                HttpProtocolParams.setContentCharset(httpParams, HTTP.DEFAULT_CONTENT_CHARSET);
                // Dobbiamo quindi descrivere quelli che sono i protocolli che intendiamo
                // gestire associando a ciascuno uno schema ed una Factory delle connessioni
                // Socket da utilizzare
                SchemeRegistry schemeRegistry = new SchemeRegistry();
                // Gestiamo il protocollo HTTP nella porta 80
                Scheme httpScheme = new Scheme("http",PlainSocketFactory.getSocketFactory(),80);
                schemeRegistry.register(httpScheme);
                // Gestiamo il protocollo HTTPS nella porta 443
                Scheme httpsScheme = new Scheme("https",SSLSocketFactory.getSocketFactory(),443);
                schemeRegistry.register(httpsScheme);          
                // Creiamo il ThreadSafeClientConnManager e lo assegnamo al client
                ClientConnectionManager tsConnManager = new ThreadSafeClientConnManager(httpParams,schemeRegistry);
                HttpClient tmpClient = new DefaultHttpClient(tsConnManager,httpParams);
                // ritorniamo l'oggetto creato
                Log.i(LOG_TAG,"HttpClient Created!");
                return tmpClient;
        }
       
        /*
         * Questo metodo permette di liberare le risorse occupate dal client ovvero
         * le diverse connessioni utilizzate. Per questo motivo andiamo a chiudere
         * le connessioni attraverso il ConnectionManager
         */

        private final void releaseHttpClient(){
                if(httpClient!=null && httpClient.getConnectionManager()!=null){
                        // Se esiste il ConnectionManager del client lo chiudiamo
                        httpClient.getConnectionManager().shutdown();
                        Log.i(LOG_TAG,"Releasing Connections");
                }
        }
       
       

}



//CLASSE THREADSAFEHTTPCLIENT

import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.URI;
import java.util.ArrayList;
import java.util.List;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.ResponseHandler;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.message.BasicNameValuePair;

import android.app.Activity;
import android.app.Dialog;
import android.app.ProgressDialog;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.util.Log;
import android.view.View;
import android.widget.TextView;

public class ThreadSafeHttpClientAerox extends Activity {
        private String user="user1";
        /*
         * Tag del Log
         */

        private final static String LOG_TAG = "ThreadSafeHttpClientTestActivity";
        /*
         * Identificativo della ProgressDialog di attesa
         */

        private final static int WAITING_PROGRESS_DIALOG_ID = 1;
        /*
         * Indirizzo del server a cui accedere
         */

        //private final static String TARGET_URL = "http://192.168.1.102/snoop.jsp";
        private final static String TARGET_URL = "http://192.168.1.102/logg.php";
        //private final static String TARGET_URL = "http://210.212.239.80/examples/jsp/snp/snoop.jsp";
        /*
         * Riferimento all'Handler
         */

        private Handler myHandler;
        /*
         * Riferimento alla ProgressDialog
         */

        private ProgressDialog progressDialog;

        /** Called when the activity is first created. */
        @Override
        public void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.main);
                // Otteniamo il riferimento alla TextView
                final TextView outputView = (TextView) findViewById(R.id.outputView);
                Log.i("Prima dell'handler", "boh...");
                myHandler = new Handler() {

                        @Override
                        public void handleMessage(Message msg) {
                                // Estrapoliamo il messaggio di testo dal msg
                                outputView.setText("Questo è il msg dell'handler:"+msg.obj.toString());
                                Log.i("Msg handler 11", "11"+msg.obj.toString());
                        }

                };
                Log.i("Prima dell'handler", "AAAAA...");
        }

        /*
         * Incapsula la logica di invio della richiesta Http
         */

        public void sendHttpRequest(View button) {
                // Avviamo un Thread con il corrispondente codice di connessione
                Thread workerThread = new Thread(new Runnable() {

                        @Override
                        public void run() {
                                try {
                                        /*HttpPost request = new HttpPost(url);  
                        //add headers
                        for(NameValuePair h : headers)
                        {
                            request.addHeader(h.getName(), h.getValue());
                        }
                        if(!params.isEmpty()){
                            request.setEntity(new UrlEncodedFormEntity(params, HTTP.UTF_8));
                        }
                        executeRequest(request, url);
                                        */

                                        // Otteniamo il riferimento al HttpClient attraverso la
                                        // Application
                                        Log.i("5", "5");
                                        CustomApplication ca = (CustomApplication)getApplication();
                                        HttpClient httpClient = ca.getThreadSafeHttpClient();
                                        // Creiamo la HttpUriRequest relativamente al metodo GET
                                        //HttpGet request = new HttpGet();
                                        HttpPost request = new HttpPost();
                                        // Impostiamo il valore dell'URI di destinazione
                                        URI targetUri = new URI(TARGET_URL);
                                        request.setURI(targetUri);
                                        // A questo punto invochiamo il server
                                        List<NameValuePair> postParameters = new ArrayList<NameValuePair>();
                                        postParameters.add(new BasicNameValuePair("usrname", user));
                                        HttpEntity postEntity = new UrlEncodedFormEntity(postParameters);
                                        request.setEntity(postEntity);
                                        httpClient.execute(request, myResponseHandler);
                                } catch (Exception e) {
                                        showMessageOnOutput(e.getMessage());
                                        Log.e("catch except", "10"+e.getMessage());
                                } finally {
                                        Log.i("?", "?");
                                        dismissDialog(WAITING_PROGRESS_DIALOG_ID);
                                }
                        }
                });
                // Visualizziamo una Dialog di attesa
                Log.i("1", "1");
                showDialog(WAITING_PROGRESS_DIALOG_ID);
                Log.i("3", "3");
                // Lo avviamo
                workerThread.start();
                Log.i("4", "4");
        }

        @Override
        protected Dialog onCreateDialog(int id) {
                switch (id) {
                case WAITING_PROGRESS_DIALOG_ID:
                        Log.i("2", "2");
                        progressDialog = new ProgressDialog(this,ProgressDialog.STYLE_SPINNER);
                        progressDialog.setTitle("HTTP Connection");
                        progressDialog.setMessage("Connecting...");
                        progressDialog.setIndeterminate(true);
                        return progressDialog;
                default:
                        Log.i("8", "8");
                        return null;
                }
        }

        /**
         * Invia un messaggio all'Handler relativo al MainThread per la sua
         * visualizzazione nella TextView di output
         *
         * @param message
         *            Messaggio da visualizzare
         */

        private void showMessageOnOutput(String message) {
                Log.i("6", "6");
                Message messageToSend = myHandler.obtainMessage();
                Log.i("7", "7");
                messageToSend.obj = message;
                Log.i("8", "8");
                myHandler.sendMessage(messageToSend);
                Log.i("9", "9");
        }

        private final ResponseHandler<String> myResponseHandler = new ResponseHandler<String>() {

                @Override
                public String handleResponse(HttpResponse response)
                                throws ClientProtocolException, IOException {
                        // Estraiamo il risultato dalla risposta. Otteniamo quindi il content
                        // da cui leggere le informazioni
                        InputStream content = response.getEntity().getContent();
                        byte[] buffer = new byte[1024];
                        int numRead = 0;
                        ByteArrayOutputStream baos = new ByteArrayOutputStream();
                        while((numRead=content.read(buffer))!=-1){
                                baos.write(buffer, 0, numRead);
                        }
                        // Chiudiamo lo stream
                        content.close();
                        // Otteniamo il risultato
                        String result = new String(baos.toByteArray());
                        Log.i("handleResponse", result);
                        Log.i("0", "0");
                        showMessageOnOutput(result);
                        Log.i("5", "5");
                        return result;
                }

        };
}

Perchè ricevo il seguente LogCat con oltretutto un Eccezione nella funzione sendHttpRequest?

Codice: [Seleziona]
08-09 09:46:19.169: INFO/ActivityManager(61): Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10000000 cmp=it.mio/.ThreadSafeHttpClientAerox } from pid 248
08-09 09:46:19.279: DEBUG/AndroidRuntime(248): Shutting down VM
08-09 09:46:19.339: INFO/AndroidRuntime(248): NOTE: attach of thread 'Binder Thread #3' failed
08-09 09:46:19.399: INFO/ActivityManager(61): Start proc it.mio for activity it.mio/.ThreadSafeHttpClientAerox: pid=257 uid=10070 gids={}
08-09 09:46:19.449: DEBUG/dalvikvm(248): GC_CONCURRENT freed 100K, 69% free 318K/1024K, external 0K/0K, paused 4ms+3ms
08-09 09:46:19.449: DEBUG/jdwp(248): adbd disconnected
08-09 09:46:23.308: INFO/Prima dell'handler(257): boh...
08-09 09:46:23.328: INFO/Prima dell'handler(257): AAAAA...
08-09 09:46:24.048: INFO/ActivityManager(61): Displayed it.mio/.ThreadSafeHttpClientAerox: +4s794ms (total +1m12s837ms)
08-09 09:46:24.108: INFO/ActivityManager(61): Displayed com.android.launcher/com.android.launcher2.Launcher: +1m12s891ms
08-09 09:46:26.618: DEBUG/dalvikvm(131): GC_EXTERNAL_ALLOC freed 72K, 49% free 2957K/5767K, external 2611K/2614K, paused 127ms
08-09 09:46:27.248: WARN/asset(131): Asset path /data/app/it.mio-1.apk is neither a directory nor file (type=1).
08-09 09:46:27.248: WARN/PackageManager(131): Failure retrieving resources forit.mio
08-09 09:46:27.270: WARN/asset(131): Asset path /data/app/it.mio-1.apk is neither a directory nor file (type=1).
08-09 09:46:27.270: WARN/PackageManager(131): Failure retrieving resources forit.mio
08-09 09:46:27.278: WARN/asset(131): Asset path /data/app/it.mio-1.apk is neither a directory nor file (type=1).
08-09 09:46:27.278: WARN/PackageManager(131): Failure retrieving resources forit.mio
08-09 09:46:27.628: DEBUG/dalvikvm(131): GC_EXPLICIT freed 114K, 50% free 2888K/5767K, external 2687K/3019K, paused 117ms
08-09 09:46:27.749: INFO/Launcher(131): setLoadOnResume
08-09 09:51:03.989: DEBUG/SntpClient(61): request time failed: java.net.SocketException: Address family not supported by protocol
08-09 09:56:03.998: DEBUG/SntpClient(61): request time failed: java.net.SocketException: Address family not supported by protocol
08-09 09:56:40.561: WARN/ActivityManager(61): Hung broadcast discarded after timeout failure: now=743538 dispatchTime=75129 startTime=90933 intent=Intent { act=android.intent.action.BOOT_COMPLETED } numReceivers=8 nextReceiver=3 state=1
08-09 09:56:40.569: WARN/ActivityManager(61): Timeout of broadcast BroadcastRecord{406c2618 android.intent.action.BOOT_COMPLETED} - receiver=null, started 652608ms ago
08-09 09:56:40.569: WARN/ActivityManager(61): Receiver during timeout: ResolveInfo{406c22c0 com.android.providers.downloads.DownloadReceiver p=0 o=0 m=0x108000}
08-09 09:56:40.579: WARN/ActivityManager(61): finishReceiver called but none active
08-09 09:56:40.649: INFO/ActivityManager(61): Start proc com.android.quicksearchbox for broadcast com.android.quicksearchbox/.SearchWidgetProvider: pid=265 uid=10002 gids={3003}
08-09 09:56:40.969: INFO/Process(61): Sending signal. PID: 61 SIG: 3
08-09 09:56:40.969: INFO/dalvikvm(61): threadid=4: reacting to signal 3
08-09 09:56:41.199: INFO/dalvikvm(61): Wrote stack traces to '/data/anr/traces.txt'
08-09 09:56:41.219: INFO/Process(61): Sending signal. PID: 124 SIG: 3
08-09 09:56:41.219: INFO/dalvikvm(124): threadid=4: reacting to signal 3
08-09 09:56:41.299: INFO/dalvikvm(124): Wrote stack traces to '/data/anr/traces.txt'
08-09 09:56:41.299: INFO/Process(61): Sending signal. PID: 126 SIG: 3
08-09 09:56:41.308: INFO/dalvikvm(126): threadid=4: reacting to signal 3
08-09 09:56:41.349: INFO/dalvikvm(126): Wrote stack traces to '/data/anr/traces.txt'
08-09 09:56:42.539: DEBUG/dalvikvm(61): GC_EXPLICIT freed 282K, 45% free 4433K/7943K, external 1865K/3065K, paused 182ms
08-09 09:56:43.089: INFO/ActivityThread(265): Pub com.android.quicksearchbox.google: com.android.quicksearchbox.google.GoogleSuggestionProvider
08-09 09:56:43.158: INFO/ActivityThread(265): Pub com.android.quicksearchbox.shortcuts: com.android.quicksearchbox.ShortcutsProvider
08-09 09:56:43.549: INFO/ActivityManager(61): Start proc com.android.music for broadcast com.android.music/.MediaAppWidgetProvider: pid=274 uid=10005 gids={3003, 1015}
08-09 09:56:43.568: INFO/Process(61): Sending signal. PID: 131 SIG: 3
08-09 09:56:43.769: INFO/dalvikvm(131): threadid=4: reacting to signal 3
08-09 09:56:43.839: ERROR/ActivityManager(61): Start proc com.android.music for broadcast com.android.music/.MediaAppWidgetProvider: pid=274 uid=10005 gids={3003, 1015}Load: 0.49 / 0.36 / 0.37
08-09 09:56:43.839: ERROR/ActivityManager(61): CPU usage from 575604ms to -1ms ago:
08-09 09:56:43.839: ERROR/ActivityManager(61):   0.6% 126/com.android.systemui: 0.5% user + 0.1% kernel / faults: 157 minor
08-09 09:56:43.839: ERROR/ActivityManager(61):   0.6% 61/system_server: 0.3% user + 0.2% kernel / faults: 6 minor
08-09 09:56:43.839: ERROR/ActivityManager(61):   0.2% 124/com.android.phone: 0.1% user + 0.1% kernel / faults: 108 minor
08-09 09:56:43.839: ERROR/ActivityManager(61):   0% 4/events/0: 0% user + 0% kernel
08-09 09:56:43.839: ERROR/ActivityManager(61):   0% 31/rild: 0% user + 0% kernel
08-09 09:56:43.839: ERROR/ActivityManager(61):   0% 37/qemud: 0% user + 0% kernel
08-09 09:56:43.839: ERROR/ActivityManager(61):   0% 12/pdflush: 0% user + 0% kernel
08-09 09:56:43.839: ERROR/ActivityManager(61):   0% 40/adbd: 0% user + 0% kernel
08-09 09:56:43.839: ERROR/ActivityManager(61):   0% 32/zygote: 0% user + 0% kernel / faults: 16 minor
08-09 09:56:43.839: ERROR/ActivityManager(61):   0% 86/logcat: 0% user + 0% kernel
08-09 09:56:43.839: ERROR/ActivityManager(61):  +0% 265/zygote: 0% user + 0% kernel
08-09 09:56:43.839: ERROR/ActivityManager(61): 1.9% TOTAL: 1.2% user + 0.7% kernel + 0% irq
08-09 09:56:43.839: ERROR/ActivityManager(61): CPU usage from 1919ms to 2634ms later:
08-09 09:56:43.839: ERROR/ActivityManager(61):   67% 265/zygote: 51% user + 15% kernel / faults: 853 minor 7 major
08-09 09:56:43.839: ERROR/ActivityManager(61):     68% 265/zygote: 51% user + 17% kernel
08-09 09:56:43.839: ERROR/ActivityManager(61):     1.3% 271/Binder Thread #: 1.3% user + 0% kernel
08-09 09:56:43.839: ERROR/ActivityManager(61):   19% 61/system_server: 10% user + 8.9% kernel / faults: 5 minor
08-09 09:56:43.839: ERROR/ActivityManager(61):     14% 74/ActivityManager: 5.9% user + 8.9% kernel
08-09 09:56:43.839: ERROR/ActivityManager(61):     2.9% 179/Binder Thread #: 1.4% user + 1.4% kernel
08-09 09:56:43.839: ERROR/ActivityManager(61):     1.4% 68/Binder Thread #: 1.4% user + 0% kernel
08-09 09:56:43.839: ERROR/ActivityManager(61):     1.4% 160/Binder Thread #: 1.4% user + 0% kernel
08-09 09:56:43.839: ERROR/ActivityManager(61):     1.4% 164/Binder Thread #: 1.4% user + 0% kernel
08-09 09:56:43.839: ERROR/ActivityManager(61):   1.4% 131/com.android.launcher: 0.7% user + 0.7% kernel / faults: 9 minor
08-09 09:56:43.839: ERROR/ActivityManager(61):     0.7% 131/ndroid.launcher: 0% user + 0.7% kernel
08-09 09:56:43.839: ERROR/ActivityManager(61):   1.4% 40/adbd: 0% user + 1.4% kernel
08-09 09:56:43.839: ERROR/ActivityManager(61): 100% TOTAL: 69% user + 29% kernel + 1.4% irq
08-09 09:56:45.229: INFO/ActivityManager(61): Start proc com.android.protips for broadcast com.android.protips/.ProtipWidget: pid=283 uid=10024 gids={}
08-09 09:56:46.569: DEBUG/dalvikvm(61): GREF has increased to 301
08-09 09:56:46.629: INFO/dalvikvm(131): Wrote stack traces to '/data/anr/traces.txt'
08-09 09:56:48.689: INFO/ActivityManager(61): Start proc com.android.deskclock for broadcast com.android.deskclock/.AlarmInitReceiver: pid=292 uid=10019 gids={}
08-09 09:56:49.990: INFO/ActivityThread(292): Pub com.android.deskclock: com.android.deskclock.AlarmProvider
08-09 09:56:50.588: INFO/ActivityManager(61): Start proc android.process.media for broadcast com.android.providers.downloads/.DownloadReceiver: pid=301 uid=10000 gids={1015, 1006, 2001, 3003}
08-09 09:56:51.818: INFO/ActivityThread(301): Pub media: com.android.providers.media.MediaProvider
08-09 09:56:52.008: VERBOSE/MediaProvider(301): Attached volume: internal
08-09 09:56:52.048: INFO/ActivityThread(301): Pub downloads: com.android.providers.downloads.DownloadProvider
08-09 09:56:52.098: INFO/ActivityThread(301): Pub drm: com.android.providers.drm.DrmProvider
08-09 09:56:52.278: INFO/ActivityManager(61): Start proc com.svox.pico for broadcast com.svox.pico/.VoiceDataInstallerReceiver: pid=310 uid=10009 gids={}
08-09 09:56:53.478: INFO/ActivityThread(310): Pub com.svox.pico.providers.SettingsProvider: com.svox.pico.providers.SettingsProvider
08-09 09:56:58.819: DEBUG/skia(61): purging 139K from font cache [16 entries]
08-09 09:56:59.049: DEBUG/dalvikvm(61): GC_EXPLICIT freed 661K, 44% free 4456K/7943K, external 1865K/3065K, paused 197ms
08-09 09:57:05.279: DEBUG/dalvikvm(131): GC_EXPLICIT freed 230K, 50% free 2966K/5831K, external 2643K/3019K, paused 126ms
08-09 10:01:04.029: DEBUG/SntpClient(61): request time failed: java.net.SocketException: Address family not supported by protocol
08-09 10:06:04.038: DEBUG/SntpClient(61): request time failed: java.net.SocketException: Address family not supported by protocol
08-09 10:06:39.089: INFO/InputReader(61): Device reconfigured: id=0x0, name=qwerty2, display size is now 320x480
08-09 10:06:39.089: WARN/InputReader(61):   Touch device did not report support for X or Y axis!
08-09 10:06:39.889: INFO/ARMAssembler(61): generated scanline__00000077:03515104_00001004_00000000 [ 65 ipp] (85 ins) at [0x4446d520:0x4446d674] in 1662711 ns
08-09 10:06:39.969: INFO/ARMAssembler(61): generated scanline__00000177:03515104_00001001_00000000 [ 91 ipp] (114 ins) at [0x4446d678:0x4446d840] in 1232559 ns
08-09 10:06:40.219: INFO/ARMAssembler(61): generated scanline__00000177:03515104_00001002_00000000 [ 87 ipp] (110 ins) at [0x4446d848:0x4446da00] in 1296324 ns
08-09 10:06:41.239: INFO/1(257): 1
08-09 10:06:41.239: INFO/2(257): 2
08-09 10:06:41.509: DEBUG/dalvikvm(257): GC_EXTERNAL_ALLOC freed 60K, 51% free 2641K/5379K, external 910K/1038K, paused 149ms
08-09 10:06:41.649: INFO/3(257): 3
08-09 10:06:41.649: INFO/4(257): 4
08-09 10:06:41.679: INFO/5(257): 5
08-09 10:06:41.679: INFO/6(257): 6
08-09 10:06:41.689: INFO/7(257): 7
08-09 10:06:41.689: INFO/8(257): 8
08-09 10:06:41.699: INFO/9(257): 9
08-09 10:06:41.729: ERROR/catch except(257): 10android.app.Application
08-09 10:06:41.729: INFO/?(257): ?
08-09 10:06:41.849: INFO/Msg handler 11(257): 11android.app.Application
08-09 10:06:42.409: WARN/InputManagerService(61): Window already focused, ignoring focus gain of: com.android.internal.view.IInputMethodClient$Stub$Proxy@406c1bb0
« Ultima modifica: 09 Agosto 2011, 12:09:12 CEST da stefanoadsl »
È stata trovata una soluzione al tuo problema?Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato ;-)

Offline Gigiuz

  • Utente normale
  • ***
  • Post: 187
  • Respect: +23
    • Google+
    • gigiuzzo81
    • Gigiuz81
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy Note III
  • Play Store ID:
    GGXSoft
  • Sistema operativo:
    Windows 7 64bit, OS X (virtualized), Ubuntu
Re:Thread HttpClient
« Risposta #1 il: 09 Agosto 2011, 15:43:45 CEST »
0
So che potrebbe essere una constatazione banale e scontata... Ma hai abilitato il relativo PERMISSION (android.permission.INTERNET) nel Manifest?
Hai bisogno di implementare un sistema di "codici seriali di sblocco" nella tua applicazione? Dai un'occhiata alla mia libreria: RemoteUnlocker

Offline Auron

  • Utente junior
  • **
  • Post: 104
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    Motorola Milestone Android 2.2.1
  • Sistema operativo:
    Windows
Re:Thread HttpClient
« Risposta #2 il: 09 Agosto 2011, 20:11:56 CEST »
0
Si è abilitato :-( ma non funziona....non capisco proprio il perchè di quell'eccezione.. uff
È stata trovata una soluzione al tuo problema?Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato ;-)

Offline Auron

  • Utente junior
  • **
  • Post: 104
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    Motorola Milestone Android 2.2.1
  • Sistema operativo:
    Windows
Re:Thread HttpClient
« Risposta #3 il: 10 Agosto 2011, 10:42:21 CEST »
0
Ho trovato il primo errore dell'eccezione.

Non avevo inseristo nel Manifest nella sezione Application il nome dell'Applicazione (CustomApplication) infatti nel codice della classe ThreadSafeClientAerox dava eccezione alla chiamata di:
Codice (Java): [Seleziona]
CustomApplication ca = (CustomApplication)getApplication();
Ho sistemato questo problema ma ne è sorto uno nuovo: viene visualizzato il Dialog "HTTP Connecting..." con il caricamento e rimane attivo fino al TimeOut...eppure la connessione httpClient viene effettuata con successo. Sapete perchè di questo Timeout?

Errore del logcat è il seguente:

Codice: [Seleziona]
08-10 09:58:07.169: DEBUG/SntpClient(68): request time failed: java.net.SocketException: Address family not supported by protocol
08-10 09:58:41.509: ERROR/catch except(492): Connect to /192.168.1.102:80 timed out
« Ultima modifica: 10 Agosto 2011, 13:27:27 CEST da stefanoadsl »
È stata trovata una soluzione al tuo problema?Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato ;-)

Offline Auron

  • Utente junior
  • **
  • Post: 104
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    Motorola Milestone Android 2.2.1
  • Sistema operativo:
    Windows
Re:Thread HttpClient
« Risposta #4 il: 10 Agosto 2011, 14:49:18 CEST »
0
Se sostituisco come TARGET_URL al posto della mia in locale un'URL caricata in internet (ad esempio la seguente):

Codice (Java): [Seleziona]
private final static String TARGET_URL = "http://210.212.239.80/examples/jsp/snp/snoop.jsp";
Funziona tutto correttamente....Quindi il problema è nella connessione HTTP in locale...come sistemo questo problema?
È stata trovata una soluzione al tuo problema?Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato ;-)

Offline Nicola_D

  • Utente storico
  • *****
  • Post: 2479
  • SBAGLIATO!
  • Respect: +323
    • Github
    • Google+
    • nicoladorigatti
    • Mostra profilo
  • Dispositivo Android:
    Nexus 6p, Nexus 4, Nexus S, Nexus 7(2012)
  • Sistema operativo:
    Windows 7
Re:Thread HttpClient
« Risposta #5 il: 10 Agosto 2011, 15:00:29 CEST »
+1
l'ip del pc non è quello che vedi dal pc, ma c'è un ip specifico da dare. Cerca sul sito android ufficiale,c'è scritto come connettersi al pc
IMPORTANTE:NON RISPONDO A PROBLEMI VIA MESSAGGIO PRIVATO
LOGCAT: Non sai cos'è? -> Android Debug Bridge | Android Developers
               Dov'è in Eclipse? -> Window -> Open Prospective -> DDMS e guarda in basso!
[Obbligatorio] Logcat, questo sconosciuto! (Gruppo AndDev.it LOGTFO) - Android Developers Italia

Offline Auron

  • Utente junior
  • **
  • Post: 104
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    Motorola Milestone Android 2.2.1
  • Sistema operativo:
    Windows
Re:Thread HttpClient
« Risposta #6 il: 10 Agosto 2011, 15:43:04 CEST »
0
Ho risolto e chiedo scusa per l'inutile topic aperto.....avendo impostato da router ip dinamico è cambiato l'ip...infatti prima avevo impostato come connessione http://xxx.xxx.xxx.102 e ora è 100.

Grazie mille! Piano piano imparo anche io :-)

Siete i migliori Anddev ;-)
È stata trovata una soluzione al tuo problema?Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato ;-)

Offline cri90

  • Nuovo arrivato
  • *
  • Post: 14
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung Corby GT-I5500
  • Sistema operativo:
    Ubuntu 12.10, Windows 7
Re:Thread HttpClient
« Risposta #7 il: 05 Novembre 2012, 01:03:47 CET »
0
Ho trovato il primo errore dell'eccezione.

Non avevo inseristo nel Manifest nella sezione Application il nome dell'Applicazione (CustomApplication) infatti nel codice della classe ThreadSafeClientAerox dava eccezione alla chiamata di:
Codice (Java): [Seleziona]
CustomApplication ca = (CustomApplication)getApplication();
Ho sistemato questo problema ma ne è sorto uno nuovo: viene visualizzato il Dialog "HTTP Connecting..." con il caricamento e rimane attivo fino al TimeOut...eppure la connessione httpClient viene effettuata con successo. Sapete perchè di questo Timeout?

Errore del logcat è il seguente:

Codice: [Seleziona]
08-10 09:58:07.169: DEBUG/SntpClient(68): request time failed: java.net.SocketException: Address family not supported by protocol
08-10 09:58:41.509: ERROR/catch except(492): Connect to /192.168.1.102:80 timed out
Mi puoi dire come hai inserito CustomApplication nel manifest?