Autore Topic: App comunicazione client server  (Letto 786 volte)

Offline ValerioAdo

  • Utente normale
  • ***
  • Post: 316
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Huawei Ascend g525
  • Sistema operativo:
    windows 8.1
App comunicazione client server
« il: 09 Aprile 2014, 14:27:06 CEST »
0
Salve a tutti sono nuovo e ho bisogno di un aiuto enorme
Sto creando un'app che deve inserire su un server ( uso phpMyAdmin con apache) un elenco di codici a barre/qr code, il problema è che non so come collegare l'app al server , ci ho già provato ma sembra che non riescano a "trovarsi", aggiungo il codice nella speranza che qualcuno mi possa aiutare  :-)

Codice (Java): [Seleziona]
package com.example.barcodereader;

import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.Socket;
import java.net.URL;
import java.net.URLConnection;
import java.net.URLEncoder;
import java.net.UnknownHostException;
import java.util.ArrayList;
import java.util.Collection;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import com.example.barcodereader.R;
import com.google.zxing.integration.android.IntentIntegrator;
import com.google.zxing.integration.android.IntentResult;

import android.os.Bundle;
import android.provider.ContactsContract.CommonDataKinds.Event;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.database.sqlite.SQLiteDatabase;
import android.util.Log;
import android.view.KeyEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
import android.view.Menu;

public class NuovoPacco<DbHelper> extends Activity implements OnClickListener {

        private Button scanBtn;
        private TextView formatTxt, contentTxt;
        private EditText codicetxt;
        public static String  Elenco2 [] = new String[100];
        String codice,Nome;
        int f=0;
        static int i=0;
        int flag=0;
        int keyCode;
        static int num=0;
        KeyEvent event;
        String result="";
   
        IntentIntegrator scanIntegrator = new IntentIntegrator(this);

        @Override
        public void onCreate(Bundle savedInstanceState) {
               
                super.onCreate(savedInstanceState);
                setContentView(R.layout.nuovopacco);
               
                Bundle bundle=getIntent().getExtras();//serve a recuperare i valore che sono stati passati all'intent
                String pkg=getPackageName();//stringa univoca per identificare i dati
                Nome=bundle.getString(pkg);//recupero la stringa passata
               
               
                Toast toast = Toast.makeText(getApplicationContext(),
                        Nome, Toast.LENGTH_SHORT);
                    toast.show();
               
                Nome();
        }
       
        public void Nome (){
               
                 scanBtn = (Button)findViewById(R.id.scan_button);
                 formatTxt = (TextView)findViewById(R.id.scan_format);
                 contentTxt = (TextView)findViewById(R.id.scan_content);
                 codicetxt = (EditText)findViewById(R.id.Codice);
                 
                 final ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
                    nameValuePairs.add(new BasicNameValuePair("idnomerichiesto","1"));
                 
               
                               
                 scanBtn.setOnClickListener(this);

                 for(i=0;i<Elenco2.length;i++){//svuoto l'elenco
                         Elenco2[i]="";
                 }
                 
                Button aggiungi=(Button)findViewById(R.id.aggiungi);    //bottone per aggiungere manualmente i codici
                aggiungi.setOnClickListener(new OnClickListener(){    
                            @Override    
                            public void onClick(View arg0) {    
                                codice=codicetxt.getText().toString();                 
 
                                for(i=0; i< Elenco2.length; i++){              
                                                if(Elenco2[i].equals(codice)) //controllo se non ci sono codici uguali
                                                        {      
                                                       
                                                 Toast toast = Toast.makeText(getApplicationContext(),
                                                                        "Codice già all'interno dell'elenco", Toast.LENGTH_SHORT);
                                                                    toast.show();
                                                                    break;
                                                        }      
                                                        if(Elenco2[i].equals("")){
                 
                                                                Elenco2[i]= new String(codice);
                                                                f++;
                                                                Toast toast = Toast.makeText(getApplicationContext(),
                                                                       "Codice Inserito", Toast.LENGTH_SHORT);
                                                                    toast.show();                                
                                                                    break;
                                                        }
                                                }
                                if(f!=0){
                                                        num++; //aumento il numero dei codici inseriti nel pacco
                                                       
                                                        // Output results to TextView
                                                        final TextView text = (TextView) findViewById(R.id.Numero);
                                                        text.setText(Integer.toString(num));
                                                        f=0;
                                }
                           
                                EditText tv= (EditText) findViewById(R.id.Codice);
                                tv.setText("");
                            }    
                });  
               
               
           Button cambio=(Button)findViewById(R.id.Invia); //bottone che inviera tutti i dati al server
                        cambio.setOnClickListener(new OnClickListener() {
                               
                                @Override
                                public void onClick(View v) {
                                        // TODO Auto-generated method stub
                                       
                                        try{
                                                               
                                               
                                                URL url=new URL("http://192.168.5.3/Dati.php");
                                                URLConnection connection=url.openConnection();
                                               
                                                connection.setDoInput(true);
                                                connection.setDoOutput(true);
                                                connection.setUseCaches(false);
                                                connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
                                               
                                                //send the post data
                                                DataOutputStream dataOut =new DataOutputStream(connection.getOutputStream());
                                               
                                               
                                                for(i=0;i<num;i++){
                                                        dataOut.writeBytes("fuffolo");
                                                }
                                                        dataOut.flush();
                                                        dataOut.close();
                                                       
                                                          // get the response from the server and store it in result
                                                DataInputStream dataIn = new DataInputStream(connection.getInputStream());
                                                String inputLine;
                                                while ((inputLine = dataIn.readLine()) != null) {
                                                    result += inputLine;
                                                }
                                                dataIn.close();
                                               
                                         } catch (IOException e) {
                                                /*
                                                 * In case of an error, we're going to return a null String. This
                                                 * can be changed to a specific error message format if the client
                                                 * wants to do some error handling. For our simple app, we're just
                                                 * going to use the null to communicate a general error in
                                                 * retrieving the data.
                                                 */

                                                e.printStackTrace();
                                                result = null;
                                            }
                                       
                                        Toast toast = Toast.makeText(getApplicationContext(),
                                                result, Toast.LENGTH_SHORT);
                                            toast.show();
                                                               
                                           finish();
                                }
                        });
        }
       
        @Override
        public boolean onCreateOptionsMenu(Menu menu) {
                // Inflate the menu; this adds items to the action bar if it is present.
                getMenuInflater().inflate(R.menu.main, menu);
                return true;
        }

        @Override
        public void onClick(View v) {
                //respond to click
                if(v.getId()==R.id.scan_button){
                        //scan
                        scanIntegrator.initiateScan();
                        }
        }

       
        public void onActivityResult(int requestCode, int resultCode, Intent intent) {
                //retrieve scan result 
                IntentResult scanningResult = IntentIntegrator.parseActivityResult(requestCode, resultCode, intent);   
               
                if (scanningResult != null) {
               
                        //we have a result             
                        String scanContent = scanningResult.getContents();
                        String scanFormat = scanningResult.getFormatName();
                       
                        if(scanContent== null){
                                scanContent="";
                        }
                       
                       
                        formatTxt.setText("FORMAT: " + scanFormat);
                        contentTxt.setText("CONTENT: " + scanContent);
                       
                        for(i=0; i< Elenco2.length; i++){              
                                if(Elenco2[i].equals(scanContent)) //controllo se non ci sono codici uguali
                                        {      
                                       
                                       
                                       
                                                Toast toast = Toast.makeText(getApplicationContext(),
                                                        "Codice già all'interno dell'elenco", Toast.LENGTH_SHORT);
                                                    toast.show();
                                                    break;
                                        }      
                                        if(Elenco2[i].equals("")){

                                        Elenco2[i]= new String(scanContent);
                                        f++;
                                        Toast toast = Toast.makeText(getApplicationContext(),
                                                       "Codice inserito", Toast.LENGTH_SHORT);
                                                    toast.show();                                
                                                    break;
                                        }
                        }
               
                        if(f!=0){
                        num++; //aumento il numero dei codici inseriti nel pacco
                       
                        // Output results to TextView
                        final TextView text = (TextView) findViewById(R.id.Numero);
                        text.setText(Integer.toString(num));
                        f=0;
                        }
                }      
        }
}

per la lettura dei codici a barre mi appoggio su una app esterna che Barcode Scanner e uso le librerie Zing.

lo so che è un codice molto incasinato ma prima di togliere le cose inutili voglio completare l'app
ringrazio ancora tutti^^ se vi serve altro codice basta chiede

Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:App comunicazione client server
« Risposta #1 il: 09 Aprile 2014, 16:12:31 CEST »
0
Se la stai provando su emulatore ricorda che l'emulatore non si affaccia direttamente sulla rete locale del pc su cui gira, ma è dietro una sorta di NAT. Se guardi sulla pagina descrittiva (su android.com) dell'emulatore, alla sezione networking trovi tutte le indicazioni del caso.
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline teskio

  • Moderatore globale
  • Utente normale
  • *****
  • Post: 387
  • Respect: +118
    • Github
    • Google+
    • Mostra profilo
    • Skullab
  • Dispositivo Android:
    Cubot GT99 / SurfTab Ventos 10.1
  • Play Store ID:
    Skullab Software
  • Sistema operativo:
    windows 7 / ubuntu 12.04
Re:App comunicazione client server
« Risposta #2 il: 09 Aprile 2014, 16:36:27 CEST »
+1
In che senso non riescono a "trovarsi" ? Come già consigliato da bradipao verifica l'esatezza e la corrispondenza del url del tuo server. Se l'app gira su emulatore il tuo localhost dovrebbe essere 10.0.2.2 (mi sembra di ricordare...)
Altra cosa, se utilizzi il protocollo http usa la classe HttpURLConnection.
In ultimo, ti chiedo, ma se devi inviare delle stringhe e solo quelle (mi sembra di aver capito), non ti conviene effettuare un semplice Post Request (magari "impacchettando" il tutto in JSON) invece che fare un upload di dati ? Comunque ti riporto l'esempio molto grezzo che è visibile sulle reference ufficiali di android nella classe HttpURLConnection per effettuare un upload :
Codice (Java): [Seleziona]
HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
   try {
     urlConnection.setDoOutput(true);
     urlConnection.setChunkedStreamingMode(0);

     OutputStream out = new BufferedOutputStream(urlConnection.getOutputStream());
     writeStream(out);

     InputStream in = new BufferedInputStream(urlConnection.getInputStream());
     readStream(in);
    finally {
     urlConnection.disconnect();
   }
 }

Offline ValerioAdo

  • Utente normale
  • ***
  • Post: 316
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Huawei Ascend g525
  • Sistema operativo:
    windows 8.1
Re:App comunicazione client server
« Risposta #3 il: 10 Aprile 2014, 08:57:48 CEST »
0
Scusate se ho dato poche informazione
L'app la testo sul mio cellulare, per "trovarsi" intendo che l'app non riesce a richiamare il file php e a passargli i parametri da inserire nel database.
Però non ho capito bene il funzionamento di "writestream(out)" , questa funzione "butta fuori" il dato direttamente o devo creare una funzione apposta?
Forse non dovrei chiedere aiuti così espliciti ma non so più dove sbattere la testa.

Vi lascio il codice java
Codice (Java): [Seleziona]
Button cambio=(Button)findViewById(R.id.Invia); //bottone che inviera tutti i dati al server
                        cambio.setOnClickListener(new OnClickListener() {
                               
                                @Override
                                public void onClick(View v) {
                                        // TODO Auto-generated method stub     
                               
                                        try{
                                                 URL url = new URL("http://192.168.5.3/Dati.php");
                                                 HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
                                               
                                               
                                                 urlConnection.setDoOutput(true);
                                             urlConnection.setChunkedStreamingMode(0);

                                             OutputStream out = new BufferedOutputStream(urlConnection.getOutputStream());
                                             writeStream(Elenco2[i]);

                                          /*   InputStream in = new BufferedInputStream(urlConnection.getInputStream());
                                             readStream(in);
                                          */
 
                                           
                                             
                                                }finally{
                                                        // TODO Auto-generated catch block     
                                                         urlConnection.disconnect();
                                                         }
                                               
                                       
                                       
                                        Toast toast = Toast.makeText(getApplicationContext(),
                                                result, Toast.LENGTH_SHORT);
                                            toast.show();
                                                               
                                           finish();
                                }
                        });
                }
       

           
       
       
        protected void readStream(InputStream in) {
                // TODO Auto-generated method stub
               
        }

        protected void writeStream(String elenco2) {
                // TODO Auto-generated method stub
               
Per ora ho creato le due funzioni per scrivere e leggere



Dati.php
Codice: [Seleziona]
<?php

$con=mysql_connect("localhost","root","Stasibinaria12");
mysql_select_db("codici");
$valore="";


if(!empty($_POST['command'])){
       
 // get the command
  $valore = $_POST['command'];
   echo "ricevuto";
   echo $valore;
  }
 
mysql_query("INSERT INTO `code`(`codice`) VALUES ($valore)");
 
 
 
 
mysql_close($con);
?>

Vi ringrazio ancora dell'aiuto  :-) come sempre se avete bisogno di altro sono sempre online  :-)

Post unito: [time]10 Aprile 2014, 10:37:36 CEST[/time]
So che non dovrei postare cose cosi spesso ma penso di aver fatto un passo da gigante rispetto a prima   ;-)
ho integrato http response come suggerito ma ora l'applicazione crasha pertanto ho cominciato a provare su simulatore, naturalmente ho cambiato il localhost come avete suggerito , posto sia il codice nuovo che il logcat, per semplicità fino ad ora ho inserito un solo codice nell'elenco



Codice (Java): [Seleziona]
[...]

 Button cambio=(Button)findViewById(R.id.Invia); //bottone che inviera tutti i dati al server
                        cambio.setOnClickListener(new OnClickListener() {
                               
                                @Override
                                public void onClick(View v) {
                                        // TODO Auto-generated method stub     
                               
                                        //creo un nuovo httpClient e Post Header
                                        HttpClient httpclient=new DefaultHttpClient();
                                        HttpPost httppost=new HttpPost("http://10.0.2.2/Dati.php");
                                       
                                try{
                                                //aggiungo i dati
                                                List<NameValuePair>nameValuePairs=new ArrayList<NameValuePair>(100);
                                                for(i=0;i<num;i++){
                                                        nameValuePairs.add(new BasicNameValuePair(null, Elenco2[i]));
                                                        httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
                                                       
                                                        //eseguo la richiesta http
                                                        HttpResponse response= httpclient.execute(httppost);
                                                       
                                                }
                                 } catch (ClientProtocolException e) {
                                        // TODO Auto-generated catch block
                                    } catch (IOException e) {
                                        // TODO Auto-generated catch block
                                    }
                                       
                                           finish();             
                        }
                });
        }

logcat

Codice: [Seleziona]
04-10 04:28:52.296: W/dalvikvm(1603): threadid=1: thread exiting with uncaught exception (group=0xb4a4fba8)
04-10 04:28:52.376: E/AndroidRuntime(1603): FATAL EXCEPTION: main
04-10 04:28:52.376: E/AndroidRuntime(1603): Process: com.example.barcodereader, PID: 1603
04-10 04:28:52.376: E/AndroidRuntime(1603): java.lang.IllegalArgumentException: Name may not be null
04-10 04:28:52.376: E/AndroidRuntime(1603):         at org.apache.http.message.BasicNameValuePair.<init>(BasicNameValuePair.java:120)
04-10 04:28:52.376: E/AndroidRuntime(1603):         at com.example.barcodereader.NuovoPacco$2.onClick(NuovoPacco.java:150)
04-10 04:28:52.376: E/AndroidRuntime(1603):         at android.view.View.performClick(View.java:4438)
04-10 04:28:52.376: E/AndroidRuntime(1603):         at android.view.View$PerformClick.run(View.java:18422)
04-10 04:28:52.376: E/AndroidRuntime(1603):         at android.os.Handler.handleCallback(Handler.java:733)
04-10 04:28:52.376: E/AndroidRuntime(1603):         at android.os.Handler.dispatchMessage(Handler.java:95)
04-10 04:28:52.376: E/AndroidRuntime(1603):         at android.os.Looper.loop(Looper.java:136)
04-10 04:28:52.376: E/AndroidRuntime(1603):         at android.app.ActivityThread.main(ActivityThread.java:5017)
04-10 04:28:52.376: E/AndroidRuntime(1603):         at java.lang.reflect.Method.invokeNative(Native Method)
04-10 04:28:52.376: E/AndroidRuntime(1603):         at java.lang.reflect.Method.invoke(Method.java:515)
04-10 04:28:52.376: E/AndroidRuntime(1603):         at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
04-10 04:28:52.376: E/AndroidRuntime(1603):         at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
04-10 04:28:52.376: E/AndroidRuntime(1603):         at dalvik.system.NativeStart.main(Native Method)



Post unito: 10 Aprile 2014, 16:17:50 CEST
Gente ora l'app è perfetta ^^
riesce a comunicare perfettamente con il server  :-)

vi ringrazio tantissimo per l'aiuto enorme che mi avete dato  :-)

carico la parte che comunica con il server (visto che di tutorial su internet ne ho trovati molto pochi)

Codice (Java): [Seleziona]
 Button cambio=(Button)findViewById(R.id.Invia); //bottone che inviera tutti i dati al server
                        cambio.setOnClickListener(new OnClickListener() {
                               
                                @Override
                                public void onClick(View v) {
                                        // TODO Auto-generated method stub     
                               
                                        //creo un nuovo httpClient e Post Header
                                        HttpClient httpclient=new DefaultHttpClient();
                                        HttpPost httppost=new HttpPost("http://192.168.5.3/Dati.php/Dati.php");
                                       
                                try{
                                                //aggiungo i dati
                                                List<NameValuePair>nameValuePairs=new ArrayList<NameValuePair>(100);
                                                invio=invio+"@"+num+"@";
                                                for(i=0;i<num;i++){
                                                       
                                                        if(i==1)
                                                        invio=invio+Elenco2[i];
                                                       
                                                        if(i>1)
                                                                invio=invio+separatore+Elenco2[i];
                                       
                                                                nameValuePairs.add(new BasicNameValuePair(command, invio));
                                                                httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
                                                       
                                                                //eseguo la richiesta http
                                                                httpclient.execute(httppost);
                                                }
                                                       
                                                        Toast toast = Toast.makeText(getApplicationContext(),
                                                                "ciao", Toast.LENGTH_SHORT);
                                                            toast.show();
                                                       
                                 } catch (ClientProtocolException e) {
                                        // TODO Auto-generated catch block
                                    } catch (IOException e) {
                                        // TODO Auto-generated catch block
                                    }
                                       
                                           finish();             
                        }
                });

ora però averi un problema con i checkbox xD se volete continuo qui se no apro un nuovo topic nella sezione esatta

grazie ancora per l'aiuto :D se volete altro codice ve lo do con molto piacere  :D

« Ultima modifica: 10 Aprile 2014, 16:18:05 CEST da ValerioAdo, Reason: Merged DoublePost »

Offline ValerioAdo

  • Utente normale
  • ***
  • Post: 316
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Huawei Ascend g525
  • Sistema operativo:
    windows 8.1
Re:App comunicazione client server
« Risposta #4 il: 14 Aprile 2014, 09:15:44 CEST »
0
Riapro questo post perché ho trovato un errore inaspettato.
Il problema è medio-grave perché non posso usare il logcat quindi non posso neanche dirvi l'errore specifico, l'unica cosa che so è che l'errore è su "httpclient.execute(httppost);" . Lo ho scoperto commentando e decommentando il codice.

Come già detto l'app la provo sul mio dispositivo fisico e non posso usare il simulatore perché ho bisogno dell'app Barcode Scanner.
Se avete qualche suggerimento come usare il logcat ve ne sarei molto grato.
Vi lascio il codice e premetto che l'indirizzo IP è corretto

Codice (Java): [Seleziona]
 Button cambio=(Button)findViewById(R.id.Invia); //bottone che inviera tutti i dati al server
                        cambio.setOnClickListener(new OnClickListener() {
                               
                                @Override
                                public void onClick(View v) {
                                        // TODO Auto-generated method stub     
                               
                                        //creo un nuovo httpClient e Post Header
                                        HttpClient httpclient=new DefaultHttpClient();
                                        HttpPost httppost=new HttpPost("http://192.168.5.2/Dati.php");
                                       
                                        invio=invio+"@"+num+"@";
                                       
                                        List<NameValuePair>stringa=new ArrayList<NameValuePair>(1000);
                                       
                                try{
                                                //aggiungo i dati
                                                for(i=0;i<num;i++){
                                                       
                                                        if(i==1){
                                                                invio=invio+"@"+Elenco2[i];
                                                        }
                                                        else{
                                                                invio=invio+separatore+Elenco2[i];
                                                        }
                                                }
                                                                stringa.add(new BasicNameValuePair(command, invio));
                                                                httppost.setEntity(new UrlEncodedFormEntity(stringa));
                                                       
                                                                //eseguo la richiesta http
                                                                httpclient.execute(httppost);
                                               
                                                       
                                                        Toast toast = Toast.makeText(getApplicationContext(),
                                                               invio, Toast.LENGTH_SHORT);
                                                            toast.show();
                                                       
                                 } catch (ClientProtocolException e) {
                                        // TODO Auto-generated catch block
                                    } catch (IOException e) {
                                        // TODO Auto-generated catch block
                                    }
                                       
                                           finish();             
                        }
                });

Post unito: [time]14 Aprile 2014, 09:41:58 CEST[/time]
Sono riuscito ad ottenere il logcat (anche se non mi è piaciuto dover modificare il manifest)

Codice: [Seleziona]
04-14 03:38:07.987: E/AndroidRuntime(1580): FATAL EXCEPTION: main
04-14 03:38:07.987: E/AndroidRuntime(1580): android.os.NetworkOnMainThreadException
04-14 03:38:07.987: E/AndroidRuntime(1580):         at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1133)
04-14 03:38:07.987: E/AndroidRuntime(1580):         at libcore.io.BlockGuardOs.connect(BlockGuardOs.java:84)
04-14 03:38:07.987: E/AndroidRuntime(1580):         at libcore.io.IoBridge.connectErrno(IoBridge.java:127)
04-14 03:38:07.987: E/AndroidRuntime(1580):         at libcore.io.IoBridge.connect(IoBridge.java:112)
04-14 03:38:07.987: E/AndroidRuntime(1580):         at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:192)
04-14 03:38:07.987: E/AndroidRuntime(1580):         at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:459)
04-14 03:38:07.987: E/AndroidRuntime(1580):         at java.net.Socket.connect(Socket.java:842)
04-14 03:38:07.987: E/AndroidRuntime(1580):         at org.apache.http.conn.scheme.PlainSocketFactory.connectSocket(PlainSocketFactory.java:119)
04-14 03:38:07.987: E/AndroidRuntime(1580):         at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:144)
04-14 03:38:07.987: E/AndroidRuntime(1580):         at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:164)
04-14 03:38:07.987: E/AndroidRuntime(1580):         at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:119)
04-14 03:38:07.987: E/AndroidRuntime(1580):         at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:360)
04-14 03:38:07.987: E/AndroidRuntime(1580):         at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:555)
04-14 03:38:07.987: E/AndroidRuntime(1580):         at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487)
04-14 03:38:07.987: E/AndroidRuntime(1580):         at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:465)
04-14 03:38:07.987: E/AndroidRuntime(1580):         at com.example.barcodereader.NuovoPacco$2.onClick(NuovoPacco.java:163)
04-14 03:38:07.987: E/AndroidRuntime(1580):         at android.view.View.performClick(View.java:4240)
04-14 03:38:07.987: E/AndroidRuntime(1580):         at android.view.View$PerformClick.run(View.java:17721)
04-14 03:38:07.987: E/AndroidRuntime(1580):         at android.os.Handler.handleCallback(Handler.java:730)
04-14 03:38:07.987: E/AndroidRuntime(1580):         at android.os.Handler.dispatchMessage(Handler.java:92)
04-14 03:38:07.987: E/AndroidRuntime(1580):         at android.os.Looper.loop(Looper.java:137)
04-14 03:38:07.987: E/AndroidRuntime(1580):         at android.app.ActivityThread.main(ActivityThread.java:5103)
04-14 03:38:07.987: E/AndroidRuntime(1580):         at java.lang.reflect.Method.invokeNative(Native Method)
04-14 03:38:07.987: E/AndroidRuntime(1580):         at java.lang.reflect.Method.invoke(Method.java:525)
04-14 03:38:07.987: E/AndroidRuntime(1580):         at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
04-14 03:38:07.987: E/AndroidRuntime(1580):         at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
04-14 03:38:07.987: E/AndroidRuntime(1580):         at dalvik.system.NativeStart.main(Native Method)


Post unito: 14 Aprile 2014, 10:15:00 CEST
Perfetto ho risolto xD

vi lascio il link nel caso serva a qualcun'altro

Caused by: android.os.NetworkOnMainThreadException - Stack Overflow
« Ultima modifica: 14 Aprile 2014, 10:15:06 CEST da ValerioAdo, Reason: Merged DoublePost »