Autore Topic: problema IP Invalid Address  (Letto 470 volte)

Offline newbie2016

  • Utente junior
  • **
  • Post: 79
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Cubot X9
  • Sistema operativo:
    Windows 7
problema IP Invalid Address
« il: 27 Giugno 2016, 10:51:42 CEST »
0
Salve, ho il seguente codice per aggiornare i dati in un DB MYSQL su un server web:
UpdateData.java:
Codice (Java): [Seleziona]
public void update()
{
ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
nameValuePairs.add(new BasicNameValuePair("id",id));
nameValuePairs.add(new BasicNameValuePair("nome",nome));
nameValuePairs.add(new BasicNameValuePair("cognome",cognome));
try
{
HttpClient httpclient = HttpClients.createDefault();
HttpPost httppost = new HttpPost("http://www.nomesito.com/app/updatejd.php");
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
HttpResponse response = httpclient.execute(httppost);
HttpEntity entity = response.getEntity();
is = entity.getContent();
Log.e("pass 1", "connection success ");
}
catch(Exception e)
{
Log.e("Fail 1", e.toString());
Toast.makeText(getApplicationContext(), "Invalid IP Address",
Toast.LENGTH_LONG).show();
}
try
{
BufferedReader reader = new BufferedReader
(new InputStreamReader(is,"iso-8859-1"),8);
StringBuilder sb = new StringBuilder();
while ((line = reader.readLine()) != null)
{
sb.append(line + "\n");
}
is.close();
result = sb.toString();
Log.e("pass 2", "connection success ");
}
catch(Exception e)
{
Log.e("Fail 2", e.toString());
}
try
{
JSONObject json_data = new JSONObject(result);
code=(json_data.getInt("code"));
if(code==1)
{
Toast.makeText(getBaseContext(), "Update Successfully",
Toast.LENGTH_SHORT).show();
}
else
{
Toast.makeText(getBaseContext(), "Sorry, Try Again",
Toast.LENGTH_LONG).show();
}
}
catch(Exception e)
{
Log.e("Fail 3", e.toString());
}
}

però quando vado a modificare dei dati contenuti nel DB mysql mi dice Invalid IP Address.
Come Mai? Il percorso è corretto http://www.nomesito.com/app/updatejd.php ho provato anche a mettere l'indirizzo ip del server al posto di www.nomesito.com ma da lo stesso errore.
il file updatejd.php è il seguente:

Codice (XML): [Seleziona]
<?php
$host='localhost';
$uname='pippo';
$pwd='123456';
$db="pippodb";
$con = mysql_connect($host,$uname,$pwd) or die("connection failed");
mysql_select_db($db,$con) or die("db selection failed");
$id=$_REQUEST['id'];
$nome=$_REQUEST['nome'];
$cognome=$_REQUEST['cognome'];
$flag['code']=0;
if($r=mysql_query("UPDATE utenti SET nome = '$nome', cognome = '$cognome' WHERE id ='$id'",$con))
{
$flag['code']=1;
}
print(json_encode($flag));
mysql_close($con);
?>
Come posso risolverlo?
Grazie

Post unito: 27 Giugno 2016, 12:47:48 CEST
Questo è il codice completo di UpdateData.java
Codice (Java): [Seleziona]
public class UpdateData extends AppCompatActivity implements NavigationView.OnNavigationItemSelectedListener {

    String nome;
    String cognome;
    String id;
    InputStream is=null;
    String result=null;
    String line=null;
    int code;

    TextView nome_view = null;
    TextView email_view = null;

    private CircleImageView imgViewPicture;
    private TextView txtViewID;
    private TextView txtViewPrenom;
    private TextView txtViewGender;
    private TextView txtViewNome;
    private TextView txtViewCognome;
    private TextView txtViewSituation;
    private TextView txtViewEmail;
    private TextView txtViewNationality;
    private TextView txtViewLanguage;
    private TextView txtViewCuisine;


    private final int ON_ACT_RESULT_CAMERA = 1;
    private final int ON_ACT_RESULT_GALLERY = 2;
    private String captured_image_path;
    int selected    =   0;

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.modulodati_main);
        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);


        DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
        ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
                this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
        drawer.setDrawerListener(toggle);
        toggle.syncState();

        imgViewPicture  =   (CircleImageView) findViewById(R.id.imgViewPicture);
        txtViewID   =   (EditText) findViewById(R.id.txtViewID);
        txtViewPrenom   =   (TextView) findViewById(R.id.txtViewPrenom);
        txtViewNome   =   (EditText) findViewById(R.id.txtViewNome);
        txtViewCognome   =   (EditText) findViewById(R.id.txtViewCognome);
        txtViewGender   =   (EditText) findViewById(R.id.txtViewGender);
        txtViewSituation   =   (EditText) findViewById(R.id.txtViewSituation);
        txtViewEmail   =   (EditText) findViewById(R.id.txtViewEmail);
        txtViewNationality   =   (EditText) findViewById(R.id.txtViewNationality);
        txtViewLanguage   =   (EditText) findViewById(R.id.txtViewLanguage);
        txtViewCuisine   =   (EditText) findViewById(R.id.txtViewCuisine);

        imgViewPicture.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                onCreateDialogSingleChoice();
            }
        });
        getStoredImage();
        String LOGIN = "Login";
        SharedPreferences pref = getSharedPreferences(LOGIN, Context.MODE_PRIVATE);
        String email = pref.getString("email","ciao");
        txtViewEmail.setText(email);
        new Mod2().execute(email);


        NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
        assert navigationView != null;
        navigationView.setNavigationItemSelectedListener(this);


        final EditText e_id=(EditText) findViewById(R.id.txtViewID);
        final EditText e_cognome=(EditText) findViewById(R.id.txtViewCognome);
        final EditText e_nome=(EditText) findViewById(R.id.txtViewNome);
        Button update=(Button) findViewById(R.id.UpdateDati);

        update.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub

                id=e_id.getText().toString();
                nome=e_nome.getText().toString();
                cognome=e_cognome.getText().toString();

                update();
            }
        });

    }



    @Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {

        super.onActivityResult(requestCode, resultCode, data);
        Log.e("In onActivityResult", "ON_ACT_RESULT_CAMERA ");
        if (requestCode == ON_ACT_RESULT_CAMERA) {
            onCaptureImageResult(data);
        } else if (requestCode == ON_ACT_RESULT_GALLERY) {

            try {

                Uri selectedimage = data.getData();
                String[] filepathcolumn = { MediaStore.Images.Media.DATA };
                Cursor cursor = getContentResolver().query(selectedimage, filepathcolumn, null, null, null);
                cursor.moveToFirst();

                int columnIndex = cursor.getColumnIndex(filepathcolumn[0]);
                String filepath = cursor.getString(columnIndex);
                cursor.close();

                System.out.println("filepath " + filepath);

                if(filepath != null) {
                    storeImageInPreferences(1, filepath);
                    imgViewPicture.setImageBitmap(getBitmapFromPath(filepath));
                }

            } catch (Exception e) {
                Log.e("In onActivityResult", "ON_ACT_RESULT_GALLERY " + e.toString());
            }
        }
    }



    public Bitmap getBitmapFromPath(String filepath) {
        return loadBitmap(filepath, getCameraPhotoOrientation(getApplicationContext(), filepath));
    }

    public Bitmap loadBitmap(String path, int orientation) {

        Bitmap bitmap = null;

        try {

            // First decode with inJustDecodeBounds=true to check dimensions
            BitmapFactory.Options options = new BitmapFactory.Options();
            bitmap = BitmapFactory.decodeFile(path);

            long size = bitmap.getRowBytes() * bitmap.getHeight();

            if(size < 1000000){
                options.inSampleSize = 1;
            }else if(size < 3000000){
                options.inSampleSize = 2;
            }else if(size < 5000000){
                options.inSampleSize = 3;
            }else if(size < 7000000){
                options.inSampleSize = 4;
            }else if(size < 9000000){
                options.inSampleSize = 5;
            }else if(size < 1200000){
                options.inSampleSize = 6;
            }else if(size > 1500000){
                options.inSampleSize = 8;
            }else if(size > 3000000){
                options.inSampleSize = 16;
            }

            bitmap = BitmapFactory.decodeFile(path, options);

            // Rotate the bitmap if required
            if (orientation > 0) {

                Matrix matrix = new Matrix();
                matrix.postRotate(orientation);
                bitmap = Bitmap.createBitmap(bitmap, 0, 0, bitmap.getWidth(), bitmap.getHeight(), matrix, true);
            }
        } catch (Exception e) {
            e.printStackTrace();
            Log.e("In LoadBitmap ", e.toString());
        }
        return bitmap;
    }

    public int getCameraPhotoOrientation(Context context, String imagePath) {

        int rotate = 0;

        try {
            File imageFile              = new File(imagePath);
            ExifInterface exif  = new ExifInterface(imageFile.getAbsolutePath());

            int orientation = exif.getAttributeInt(     ExifInterface.TAG_ORIENTATION, ExifInterface.ORIENTATION_NORMAL);

            switch (orientation) {

                case ExifInterface.ORIENTATION_ROTATE_270:
                    rotate = 270;
                    break;
                case ExifInterface.ORIENTATION_ROTATE_180:
                    rotate = 180;
                    break;
                case ExifInterface.ORIENTATION_ROTATE_90:
                    rotate = 90;
                    break;
            }

            Log.v("ORIENTATION", "Exif orientation: " + orientation);

        } catch (Exception e) {
            e.printStackTrace();
        }
        return rotate;
    }

    public void onCreateDialogSingleChoice() {


        //Initialize the Alert Dialog
        AlertDialog.Builder builder = new AlertDialog.Builder(this);
        //Source of the data in the Dialog
        CharSequence[] array = {"Camera", "Gallery"};

        // Set the dialog title
        builder.setTitle("Select Picture From")
                .setSingleChoiceItems(array, selected, new DialogInterface.OnClickListener() {

                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        selected    =   which;
                    }
                })

                // Set the action buttons
                .setPositiveButton("Ok", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int id) {
                        // User clicked OK, so save the result somewhere
                        // or return them to the component that opened the dialog
                        dialog.dismiss();
                        boolean result=Utility.checkPermission(UpdateData.this);
                        if(selected == 0) {
                            if(result)
                                cameraIntent();
                        } else {
                            if(result)
                                galleryIntent();
                        }
                    }
                })
                .setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int id) {
                        dialog.dismiss();
                    }
                });

        AlertDialog alertDialog =   builder.create();
        alertDialog.show();
    }

    @Override
    public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
        switch (requestCode) {
            case Utility.MY_PERMISSIONS_REQUEST_READ_EXTERNAL_STORAGE:
                if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
                    if(selected == 0)
                        cameraIntent();
                    else if(selected == 1)
                        galleryIntent();
                }
                break;
        }
    }

    private void cameraIntent() {
        Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
        startActivityForResult(intent, ON_ACT_RESULT_CAMERA);
    }

    private void galleryIntent() {
        Intent gallery = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.INTERNAL_CONTENT_URI);
        startActivityForResult(gallery, ON_ACT_RESULT_GALLERY);
    }

    private void onCaptureImageResult(Intent data) {
        Bitmap thumbnail = (Bitmap) data.getExtras().get("data");
        ByteArrayOutputStream bytes = new ByteArrayOutputStream();
        if (thumbnail != null) {
            thumbnail.compress(Bitmap.CompressFormat.JPEG, 90, bytes);
        }

        File destination = new File(Environment.getExternalStorageDirectory(), System.currentTimeMillis() + ".jpg");

        FileOutputStream fo;
        try {
            destination.createNewFile();
            fo = new FileOutputStream(destination);
            fo.write(bytes.toByteArray());
            fo.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
        storeImageInPreferences(0, destination.getPath());
        imgViewPicture.setImageBitmap(thumbnail);
    }

    private class Mod2 extends AsyncTask<String, Integer, String> {
        protected String doInBackground(String... parametri) {
            String par = Arrays.toString(parametri);
            par = par.replace("[", "");
            par = par.replace("]", "");
            HttpClient httpclient = HttpClients.createDefault();
            HttpPost httppost = new HttpPost("http://www.sito.com/app/app.php");
            String gio = "";
            try {
                List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
                nameValuePairs.add(new BasicNameValuePair("email", par));
                nameValuePairs.add(new BasicNameValuePair("getInfo", "si"));
                httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
                HttpResponse response = httpclient.execute(httppost);
                String responseStr = EntityUtils.toString(response.getEntity());
                Log.d("Risposta dal server", responseStr);
                gio = responseStr;
            } catch (IOException e) {
                e.printStackTrace();
            }
            return gio;
        }

        protected void onPostExecute(String result) {
            String[] results = result.split("###");
            Log.d("size",String.valueOf(results.length));
            if( results[0].equals("1") ){
                String id = results[0];
                String nome = results[1];
                String cognome = results[2];
                String email = results[3];
                String professione = results[4];
                String genere = results[5];
                String professione_specifica = results[6];
                String professione_livello = results[7];
                String incinta = results[8];
                String interessi = results[9];
                String tel = results[10];
                String cap = results[11];
                String citta = results[12];
                String contatti = results[13];
                String crediti = results[14];
                String descrizione = results[15];
                String zodiacale = results[16];
                String nazione = results[17];
                String provincia = results[18];
                String disponibilita = results[19];
                String info = results[20];
                String posizione = results[21];
                String img = "";
                if(results.length > 22) {
                    img = results[22];
                }
                if( contatti.equals("0,0") ){
                    contatti = "Nessuna";
                }else if( contatti.equals("1,0") ){
                    contatti = "Lavoro";
                }else if( contatti.equals("0,1") ){
                    contatti = "Personale";
                }else if( contatti.equals("1,1") ){
                    contatti = "Lavoro e Personale";
                }
                String disponibilita1 = "";
                if(disponibilita.contains(",")) {
                    String[] disp = disponibilita.split(",");
                    if(disp.length >= 4) {
                        if (disp[0].equals("1")) {
                            if (disponibilita1.equals("")) {
                                disponibilita1 = "Colazione";
                            } else {
                                disponibilita1 = disponibilita1 + ", Colazione";
                            }
                        }
                        if (disp[1].equals("1")) {
                            if (disponibilita1.equals("")) {
                                disponibilita1 = "Pranzo";
                            } else {
                                disponibilita1 = disponibilita1 + ", Pranzo";
                            }
                        }
                        if (disp[2].equals("1")) {
                            if (disponibilita1.equals("")) {
                                disponibilita1 = "Aperitivo";
                            } else {
                                disponibilita1 = disponibilita1 + ", Aperitivo";
                            }
                        }
                        if (disp[3].equals("1")) {
                            if (disponibilita1.equals("")) {
                                disponibilita1 = "Cena";
                            } else {
                                disponibilita1 = disponibilita1 + ", Cena";
                            }
                        }
                    }
                }
                // TextView Vdesc = (TextView)v.findViewById(R.id.desc);
                //Vdesc.setText(descrizione);
                if(!TextUtils.isEmpty(img)) {
                    Picasso.with(getApplicationContext()).load(img).into(imgViewPicture);
                }
                txtViewID.setText(id);
                txtViewPrenom.setText(nome+" "+cognome);
                txtViewGender.setText(genere);
                txtViewNome.setText(nome);
                txtViewCognome.setText(cognome);
                txtViewCuisine.setText(citta);
                txtViewSituation.setText(cap);
                txtViewLanguage.setText(provincia);
                txtViewNationality.setText(nazione);
            }else{
                Log.d("false","falso");
            }
        }
    }

    private void storeImageInPreferences(int from, String path) {
        SharedPreferences.Editor pref = getSharedPreferences("photo", Context.MODE_PRIVATE).edit();
        pref.putString("image", ""+path);
        pref.apply();
    }

    private void getStoredImage() {
        SharedPreferences prefs = getSharedPreferences("photo", MODE_PRIVATE);
        String restoredText = prefs.getString("image", null);
        if(restoredText != null) {
            imgViewPicture.setImageBitmap(getBitmapFromPath(restoredText));

        }
    }

    public void update()
    {
        ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();

        nameValuePairs.add(new BasicNameValuePair("id",id));
        nameValuePairs.add(new BasicNameValuePair("nome",nome));
        nameValuePairs.add(new BasicNameValuePair("cognome",cognome));

        try
        {
            HttpClient httpclient = HttpClients.createDefault();
            HttpPost httppost = new HttpPost("http://www.sito.com/app/updatejd.php");
            httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
            HttpResponse response = httpclient.execute(httppost);
            HttpEntity entity = response.getEntity();
            is = entity.getContent();
            Log.e("pass 1", "connection success ");
        }
        catch(Exception e)
        {
            Log.e("Fail 1", e.toString());
            Toast.makeText(getApplicationContext(), "Invalid IP Address",
                    Toast.LENGTH_LONG).show();
        }

        try
        {
            BufferedReader reader = new BufferedReader
                    (new InputStreamReader(is,"iso-8859-1"),8);
            StringBuilder sb = new StringBuilder();
            while ((line = reader.readLine()) != null)
            {
                sb.append(line + "\n");
            }
            is.close();
            result = sb.toString();
            Log.e("pass 2", "connection success ");
        }
        catch(Exception e)
        {
            Log.e("Fail 2", e.toString());
        }

        try
        {
            JSONObject json_data = new JSONObject(result);
            code=(json_data.getInt("code"));

            if(code==1)
            {
                Toast.makeText(getBaseContext(), "Update Successfully",
                        Toast.LENGTH_SHORT).show();
            }
            else
            {
                Toast.makeText(getBaseContext(), "Sorry, Try Again",
                        Toast.LENGTH_LONG).show();
            }
        }
        catch(Exception e)
        {
            Log.e("Fail 3", e.toString());
        }
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {

        return true;
    }
    @Override
    public void onBackPressed() {
        DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
        if (drawer.isDrawerOpen(GravityCompat.START)) {
            drawer.closeDrawer(GravityCompat.START);
        } else {
            super.onBackPressed();
        }
    }


    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();

        return super.onOptionsItemSelected(item);
    }

    @SuppressWarnings("StatementWithEmptyBody")
    @Override
    public boolean onNavigationItemSelected(MenuItem item) {
        // Handle navigation view item clicks here.
        int id = item.getItemId();

        if (id == R.id.cerca_justdiner) {
            moveToFragment(new SearchFragment(), true);
        } else if (id == R.id.gestione_profilo) {
            Intent ProfileActivity = new Intent(UpdateData.this,ProfileActivity.class);
            startActivity(ProfileActivity);
        } else if (id == R.id.calendario_inviti) {
            moveToFragment(new InvitiFragment(), true);
        } else if (id == R.id.crediti) {
            Intent crediti = new Intent(UpdateData.this,crediti.class);
            startActivity(crediti);
        } else if (id == R.id.contatti_preferiti) {
            moveToFragment(new PreferitiFragment(), true);
        } else if (id == R.id.policy) {
            moveToFragment(new PrivacyFragment(), true);
        } else if(id == R.id.about){
            moveToFragment(new AboutFragment(), true);
        }

        DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
        drawer.closeDrawer(GravityCompat.START);
        return true;
    }

    @Override
    protected void onStart(){
        super.onStart();
        NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
        View header = navigationView.getHeaderView(0);
        nome_view = (TextView) header.findViewById(R.id.nome_view);
        email_view = (TextView) header.findViewById(R.id.email_view);
        String LOGIN = "Login";
        SharedPreferences pref = getSharedPreferences(LOGIN, Context.MODE_PRIVATE);
        String nome = pref.getString("nome","ciao");
        String cognome = pref.getString("cognome","ciao");
        String email = pref.getString("email","ciao");
        String nome_completo = nome+" "+cognome;
        nome_view.setText(nome_completo);
        email_view.setText(email);
    }

    private void moveToFragment(Fragment fragment, boolean isAddToBackStack) {

        if(fragment != null) {
            FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
            ft.replace(R.id.frame, fragment);
            if(isAddToBackStack) {
                ft.addToBackStack(null);
            }
            ft.commit();
        }
    }
}

Grazie
« Ultima modifica: 27 Giugno 2016, 12:48:10 CEST da newbie2016, Reason: Merged DoublePost »

Offline Carni

  • Nuovo arrivato
  • *
  • Post: 41
  • Respect: +3
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S3
  • Play Store ID:
    R3D5HA
  • Sistema operativo:
    Windows 10
Re:problema IP Invalid Address
« Risposta #1 il: 27 Giugno 2016, 15:51:45 CEST »
0
Posta quello che è scritto all'interno del log "Fail 1".

Offline newbie2016

  • Utente junior
  • **
  • Post: 79
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Cubot X9
  • Sistema operativo:
    Windows 7
Re:problema IP Invalid Address
« Risposta #2 il: 27 Giugno 2016, 15:56:30 CEST »
0
Codice (Java): [Seleziona]
catch(Exception e)
        {
            Log.e("Fail 1", e.toString());
            Toast.makeText(getApplicationContext(), "Invalid IP Address",
                    Toast.LENGTH_LONG).show();
        }

Purtroppo non mi fa fare il Debug perchè mi dice Unable to locate adb within SDK

Offline Carni

  • Nuovo arrivato
  • *
  • Post: 41
  • Respect: +3
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S3
  • Play Store ID:
    R3D5HA
  • Sistema operativo:
    Windows 10
Re:problema IP Invalid Address
« Risposta #3 il: 27 Giugno 2016, 16:05:00 CEST »
0
Allora stampa l' "e.tostring()" nel toast che fai e riporti quello che c'è scritt, altrimenti è un po' difficile capire quello che accade.

Offline newbie2016

  • Utente junior
  • **
  • Post: 79
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Cubot X9
  • Sistema operativo:
    Windows 7
Re:problema IP Invalid Address
« Risposta #4 il: 27 Giugno 2016, 16:28:01 CEST »
0
ho stampato e.tostring() e mi da il seguente messaggio

android.os.NetworkOnMainThreadException

Offline Ohmnibus

  • Utente senior
  • ****
  • Post: 583
  • Respect: +130
    • Google+
    • @ohmnibus
    • Mostra profilo
    • Lords of Knowledge GdR
  • Dispositivo Android:
    Samsung Galaxy Nexus
  • Play Store ID:
    Ohmnibus
  • Sistema operativo:
    Windows 7 x64
Re:problema IP Invalid Address
« Risposta #5 il: 27 Giugno 2016, 16:55:59 CEST »
0
Devi eseguire la connessione in un thread asincrono (ad esempio con AsyncTask), in quanto Android non permette l'utilizzo della rete dal thread principale.
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.

Offline newbie2016

  • Utente junior
  • **
  • Post: 79
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Cubot X9
  • Sistema operativo:
    Windows 7
Re:problema IP Invalid Address
« Risposta #6 il: 27 Giugno 2016, 17:03:59 CEST »
0
quindi dovrei inserire dentro un AsyncTask questa parte di codice

Codice (Java): [Seleziona]
public void update()
{
ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
nameValuePairs.add(new BasicNameValuePair("id",id));
nameValuePairs.add(new BasicNameValuePair("nome",nome));
nameValuePairs.add(new BasicNameValuePair("cognome",cognome));
try
{
HttpClient httpclient = HttpClients.createDefault();
HttpPost httppost = new HttpPost("http://www.nomesito.com/app/updatejd.php");
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
HttpResponse response = httpclient.execute(httppost);
HttpEntity entity = response.getEntity();
is = entity.getContent();
Log.e("pass 1", "connection success ");
}
catch(Exception e)
{
Log.e("Fail 1", e.toString());
Toast.makeText(getApplicationContext(), "Invalid IP Address",
Toast.LENGTH_LONG).show();
}
try
{
BufferedReader reader = new BufferedReader
(new InputStreamReader(is,"iso-8859-1"),8);
StringBuilder sb = new StringBuilder();
while ((line = reader.readLine()) != null)
{
sb.append(line + "\n");
}
is.close();
result = sb.toString();
Log.e("pass 2", "connection success ");
}
catch(Exception e)
{
Log.e("Fail 2", e.toString());
}
try
{
JSONObject json_data = new JSONObject(result);
code=(json_data.getInt("code"));
if(code==1)
{
Toast.makeText(getBaseContext(), "Update Successfully",
Toast.LENGTH_SHORT).show();
}
else
{
Toast.makeText(getBaseContext(), "Sorry, Try Again",
Toast.LENGTH_LONG).show();
}
}
catch(Exception e)
{
Log.e("Fail 3", e.toString());
}
}
« Ultima modifica: 27 Giugno 2016, 17:17:51 CEST da newbie2016 »

Offline Ohmnibus

  • Utente senior
  • ****
  • Post: 583
  • Respect: +130
    • Google+
    • @ohmnibus
    • Mostra profilo
    • Lords of Knowledge GdR
  • Dispositivo Android:
    Samsung Galaxy Nexus
  • Play Store ID:
    Ohmnibus
  • Sistema operativo:
    Windows 7 x64
Re:problema IP Invalid Address
« Risposta #7 il: 27 Giugno 2016, 17:21:25 CEST »
0
Esatto
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.

Offline newbie2016

  • Utente junior
  • **
  • Post: 79
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Cubot X9
  • Sistema operativo:
    Windows 7
Re:problema IP Invalid Address
« Risposta #8 il: 27 Giugno 2016, 18:02:29 CEST »
0
Da sempre Invalid IP Address!!!
Ho fatto così:
Codice (Java): [Seleziona]
protected void onCreate(@Nullable Bundle savedInstanceState) {
................................................


new Connection().execute();
}
....................................................................




private class Connection extends AsyncTask {

        @Override
        protected Object doInBackground(Object... arg0) {
            update();
            return null;
        }

    }

        public void update()
        {
            ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();

            nameValuePairs.add(new BasicNameValuePair("id",id));
            nameValuePairs.add(new BasicNameValuePair("nome",nome));
            nameValuePairs.add(new BasicNameValuePair("cognome",cognome));

            try
            {
                HttpClient httpclient = HttpClients.createDefault();
                HttpGet httpGet = new HttpGet("http://51.255.206.34/justdin/updatejd.php");
                //httpGet.setEntity(new UrlEncodedFormEntity(nameValuePairs));
                HttpResponse response = httpclient.execute(httpGet);
                HttpEntity entity = response.getEntity();
                is = entity.getContent();
                Log.e("pass 1", "connection success ");
            }
            catch(Exception e)
            {
                Log.e("Fail 1", e.toString());

                Log.e("Fail 1", e.toString());
                Toast.makeText(getApplicationContext(), "Invalid IP Address",
                        Toast.LENGTH_LONG).show();

            }

            try
            {
                BufferedReader reader = new BufferedReader
                        (new InputStreamReader(is,"iso-8859-1"),8);
                StringBuilder sb = new StringBuilder();
                while ((line = reader.readLine()) != null)
                {
                    sb.append(line + "\n");
                }
                is.close();
                result = sb.toString();
                Log.e("pass 2", "connection success ");
            }
            catch(Exception e)
            {
                Log.e("Fail 2", e.toString());
            }

            try
            {
                JSONObject json_data = new JSONObject(result);
                code=(json_data.getInt("code"));

                if(code==1)
                {
                    Toast.makeText(getBaseContext(), "Update Successfully",
                            Toast.LENGTH_SHORT).show();
                }
                else
                {
                    Toast.makeText(getBaseContext(), "Sorry, Try Again",
                            Toast.LENGTH_LONG).show();
                }
            }
            catch(Exception e)
            {
                Log.e("Fail 3", e.toString());
            }
        }

Qual è la giusta sintassi?
Grazie

Offline Ohmnibus

  • Utente senior
  • ****
  • Post: 583
  • Respect: +130
    • Google+
    • @ohmnibus
    • Mostra profilo
    • Lords of Knowledge GdR
  • Dispositivo Android:
    Samsung Galaxy Nexus
  • Play Store ID:
    Ohmnibus
  • Sistema operativo:
    Windows 7 x64
Re:problema IP Invalid Address
« Risposta #9 il: 27 Giugno 2016, 21:34:19 CEST »
0
Senza log faccio davvero fatica ad aiutarti...
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.

Offline newbie2016

  • Utente junior
  • **
  • Post: 79
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Cubot X9
  • Sistema operativo:
    Windows 7
Re:problema IP Invalid Address
« Risposta #10 il: 27 Giugno 2016, 21:43:34 CEST »
0
No, ho solo chiesto se la sintassi dell'AsyncTask era corretta.

Post unito: 28 Giugno 2016, 21:29:37 CEST
questo è quello che mi da nel logcat quando faccio clicco su modifica per aggiornare i dati


06-28 21:27:08.134 5909-5909/com.mariorossi.appdemo E/Fail 1: android.os.NetworkOnMainThreadException
06-28 21:27:08.139 5909-5909/com.mariorossi.appdemo E/Fail 2: java.lang.NullPointerException: lock == null
06-28 21:27:08.139 5909-5909/com.mariorossi.appdemo E/Fail 3: java.lang.NullPointerException


che significa?
« Ultima modifica: 28 Giugno 2016, 21:29:37 CEST da newbie2016, Reason: Merged DoublePost »

Offline newbie2016

  • Utente junior
  • **
  • Post: 79
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Cubot X9
  • Sistema operativo:
    Windows 7
Re:problema IP Invalid Address
« Risposta #11 il: 30 Giugno 2016, 12:46:12 CEST »
0
Come posso risolvere quegli errori?

Offline leozamp

  • Nuovo arrivato
  • *
  • Post: 2
  • Respect: 0
    • Mostra profilo
Re:problema IP Invalid Address
« Risposta #12 il: 23 Luglio 2016, 19:27:47 CEST »
0
Allora, l'ASyncTask così come lo hai implementato no buono.

Fai una cosa del genere:

Estendi ASyncTask:
Codice (Java): [Seleziona]
 private class Connection extends AsyncTask<Void /*Tipo dei parametri in entrata*/, Void /*Tipo del parametro di publishProgress*/, Void /*Tipo del valore di ritorno*/> {
     protected Void doInBackground(Void... args) {
         // QUI (non fuori da qui) fai tutte le operazioni che ti sono necessarie
     }

     // Qui puoi sovrascrivere onPreExecute e onPostExecute per effettuare operazioni prima o dopo doInBackground
 }

Leggi qui (https://developer.android.com/reference/android/os/AsyncTask.html) se non hai capito.

Poi nella tua funzione update() chiami semplicemente:
Codice (Java): [Seleziona]
public void update() {
    new Connection().execute();
}


Nel tuo caso, potrebbe essere una cosa del genere:
Codice (Java): [Seleziona]
private class Connection extends AsyncTask<Void, Void, Integer> {
     ArrayList<NameValuePair> nameValuePairs;

     @Override
        protected void onPreExecute() {
           nameValuePairs = new ArrayList<NameValuePair>();

            nameValuePairs.add(new BasicNameValuePair("id",id));
            nameValuePairs.add(new BasicNameValuePair("nome",nome));
            nameValuePairs.add(new BasicNameValuePair("cognome",cognome));
        }

     @Override
     protected Integer doInBackground(Void... args) {
         try {
                HttpClient httpclient = HttpClients.createDefault();
                HttpGet httpGet = new HttpGet("http://51.255.206.34/justdin/updatejd.php");
                HttpResponse response = httpclient.execute(httpGet);
                HttpEntity entity = response.getEntity();
                is = entity.getContent();

                BufferedReader reader = new BufferedReader(new InputStreamReader(is,"iso-8859-1"),8);
                StringBuilder sb = new StringBuilder();
                while ((line = reader.readLine()) != null)
                {
                    sb.append(line + "\n");
                }
                is.close();
                result = sb.toString();

                JSONObject json_data = new JSONObject(result);
                code=(json_data.getInt("code"));
                return code;
         } catch (Exception e) {
                Log.e("MyApp",e.toString());

         }
         return -1;
     }

     @Override
        protected void onPostExecute(Integer code) {
                if(code==1)
                {
                    Toast.makeText(getBaseContext(), "Update Successfully",
                            Toast.LENGTH_SHORT).show();
                }
                else
                {
                    Toast.makeText(getBaseContext(), "Sorry, Try Again",
                            Toast.LENGTH_LONG).show();
                }
                // Nota: i Toast, così come tutte le operazioni che riguardano l'UI, non possono essere fatte asincronicamente: è necessario quindi farle in onPreExecute, onPostExecute o onProgressUpdate
        }

 }
« Ultima modifica: 23 Luglio 2016, 19:38:28 CEST da leozamp, Reason: AddExample »

Offline newbie2016

  • Utente junior
  • **
  • Post: 79
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Cubot X9
  • Sistema operativo:
    Windows 7
Re:problema IP Invalid Address
« Risposta #13 il: 23 Luglio 2016, 20:09:08 CEST »
0
Grazie.