Merhaba,

Arkadaşlar Android ile hazırladığım uygulamadan internetdeki php ile hazırlanmış sayfaya post method'u ile bilgileri gönderemiyorum uygulama kapatılıyor diyor ve zorla kapanıyor bu sorunu nasıl çözebilirim?

AndroidManifest.xml dosyasına internet izin satırını yazdım

Main den direkt kodu çağırmıyorum asyntask kullanarak çağırıyorum Örnek kod aşağıdadır.Yardımcı olursanız sevinirim.

Uygulamayı oluştuturken target'ı 2.3.3 olarak seçtim.

Asynctask kullanmadan direk kodu çağırdığım zaman da aynı şekilde hata veriyor.

@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main);

    new myAsyncTask("Yükleniyor").execute();

}

private class myAsyncTask extends AsyncTask<void, void,="" void=""> {

    String modalMesaj;
    String hataMesaj;
    ProgressDialog dialog;

    JSONObject jsonObject = null;

    String productName = "";
    String categoryName = "";
    String unitPrice = "";

    public myAsyncTask(String mMesaj) {
        this.modalMesaj = mMesaj;
        this.dialog = new ProgressDialog(MainActivity.this);
    }

    @Override
    protected void onPreExecute() {
        dialog.setMessage(modalMesaj);
        dialog.setIndeterminate(true);
        dialog.setCancelable(false);
        dialog.show();
    }

    @Override
    protected Void doInBackground(Void... params) {

        HttpClient httpclient = new DefaultHttpClient();
        HttpPost httppost = new HttpPost(
                "http://www.ebeveyntakip.com/ebeveyn_api/set_data.php?table=ebeveyntakip_rehber");

        try {
            // Add your data
            ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(
                    6);
            nameValuePairs.add(new BasicNameValuePair("userid", "12"));
            nameValuePairs.add(new BasicNameValuePair("ad", "Ahmet"));
            nameValuePairs.add(new BasicNameValuePair("soyad", "Can"));
            nameValuePairs.add(new BasicNameValuePair("tels", "50652349387"));
            nameValuePairs.add(new BasicNameValuePair("telev", "12121212"));
            nameValuePairs.add(new BasicNameValuePair("cihazid", "6"));

            httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));

            HttpResponse response = httpclient.execute(httppost);

        } catch (ClientProtocolException e) {
            // TODO Auto-generated catch block
        } catch (IOException e) {
            // TODO Auto-generated catch block
        }

        // /////////////////////////////////////////////////////////////

        return null;
    }

    @Override
    protected void onPostExecute(Void str) {

        if (dialog.isShowing())
            dialog.dismiss();

        try {

            Mesaj(hataMesaj);

            productName = jsonObject.getString("ProductName").toString();
            categoryName = jsonObject.getString("CategoryName").toString();
            unitPrice = jsonObject.getString("UnitPrice").toString();

            // etProductName.setText(this.productName);
            // etCategoryName.setText(this.categoryName);
            // etUnitPrice.setText(this.unitPrice);

        } catch (JSONException e) {
            e.printStackTrace();
        }

    }
}

private static String convertStreamToString(InputStream is) {

    BufferedReader reader = new BufferedReader(new InputStreamReader(is));
    StringBuilder sb = new StringBuilder();

    String line = null;
    try {
        while ((line = reader.readLine()) != null) {
            sb.append(line + "\\n");
        }
    } catch (IOException e) {
        e.printStackTrace();
    } finally {
        try {
            is.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    return sb.toString();
}

soruldu: 25 Mar '14, 04:55

gokhanakgol's gravatar image

gokhanakgol
705687777
cevap kabul oranı: 30%

1

Debug ettin mi tam olarak nerde hata oluşuyor ? Ayrıca JSON ile dönen değerler için kullandığın parametre isimleri dogru mu emin misin ?

(25 Mar '14, 05:00) Tugrul Asik Tugrul%20Asik's gravatar image

Merhaba,

Hatayı çözdüm sorun başka yerdeymiş ama şu anda hata vermemesine rağmen veri tabanına kayıt atmıyor.

kod en sonuna kadar çalışıyor.

ben herhangi bir değer almak istemiyorum sadece verileri php sayfası ile veritabanına kayıt etmek istiyorum

(25 Mar '14, 05:21) gokhanakgol gokhanakgol's gravatar image

  • Gördüğüm kadarıyla convertStreamToString methodu hiç bir yerde kullanılmamış.

  • JSONObject tipinde jsonObject isminde bir field tanımlanmış fakat referansı null.Ve onPostExecute methodu içerinde productName = jsonObject.getString("ProductName").toString(); şeklinde bir erişim mevcut.Burda bir problem olabilir.

  • doInBackground methodu içersinde bir adrese istek yapılmış,ve bu istek sonucunda string bir json sonuç dönüyor diye tahmin ediyorum fakat bu dönen,string json sonuç JSONObject tipinde jsonObject değişkene dönüştürülmemiş.

  • Veritabanına neden kaydetmediği için ise set_data.php içersinde $POST methodundan nasıl bir veri geliyor diye kontrol edilebilir.

  • Bunun dışında this.dialog = new ProgressDialog(MainActivity.this); böyle bir yazım şekli yerine, myAsyncTask sınıfına private Context context; şeklinde bir alan tanımlayıp, this.dialog = new ProgressDialog(this.context); şeklinde yazım daha düzgün olabilir.Tabi dışardan set etmeyi unutmayalım...

Kolay gelsin...

permanent link

cevaplandı: 25 Mar '14, 19:46

ismailkocacan's gravatar image

ismailkocacan
2.4k31733
cevap kabul oranı: 13%

değiştirildi: 25 Mar '14, 19:49

Merhaba,

Yanıtlarınız için teşekkür ederim hocam son bir kısım kaldı diğer adımları yaptım, aşağıda verdiğim kod ile sorunsuz çalışıyor ama kayıt atmıyor veri tabanına json dan dönen değer de "Geçersiz İşlem" oluyor.Hata nerede olabilir, mobile uygulamadan post ile php sayfaya veri gönderirken başka dikkat edilmesi gereken nokta neresi yardımcı olursanız sevinirim

Örnek Kod;

@Override protected Void doInBackground(Void... params) {

        HttpClient httpclient = new DefaultHttpClient();
        HttpPost httppost = new HttpPost(
                "http://www.ebeveyntakip.com/ebeveyn_api/set_data.php?table=ebeveyntakip_rehber");

        List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(6);
        nameValuePairs.add(new BasicNameValuePair("userid", "135"));
        nameValuePairs.add(new BasicNameValuePair("ad", "Ali"));
        nameValuePairs.add(new BasicNameValuePair("soyad", "cem"));
        nameValuePairs.add(new BasicNameValuePair("tels", "5065989387"));
        nameValuePairs.add(new BasicNameValuePair("telev", "12121212"));
        nameValuePairs.add(new BasicNameValuePair("cihazid", "425"));

        try {
            httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
        } catch (UnsupportedEncodingException e) {
            // TODO Auto-generated catch block
            hataMesaj = e.getMessage();
            e.printStackTrace();
        }

        HttpResponse response;

        try {
            response = httpclient.execute(httppost);

            HttpEntity entity = response.getEntity();

            if (entity != null) {
                InputStream instream = entity.getContent();
                result = convertStreamToString(instream);

                instream.close();
            }

        } catch (ClientProtocolException e) {
            // TODO Auto-generated catch block
            hataMesaj = e.getMessage();
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            hataMesaj = e.getMessage();
            e.printStackTrace();
        }

        return null;
    }
permanent link

cevaplandı: 26 Mar '14, 07:48

gokhanakgol's gravatar image

gokhanakgol
705687777
cevap kabul oranı: 30%

android tarafından post ile veriyi gönderiyosan,php tarafında da $post değişkeninden gelen değerleri alman lazım.

bunu bir kontrol et istersen

(26 Mar '14, 07:51) ismailkocacan ismailkocacan's gravatar image

set_data.php içersinde nasıl işlem yaptığını görmeden yorum yapmak zor olur.

(26 Mar '14, 11:44) ismailkocacan ismailkocacan's gravatar image
Cevabınız
toggle preview

Bu soruyu takip et

E-Posta üzerinden:

Üyelik girişi yaptıktan sonra abonelik işlemlerini yapabilirsiniz

RSS üzerinden:

Cevaplar

Cevaplar ve Yorumlar

Yazı Formatlama

  • *italic* ya da _italic_
  • **bold** ya da __bold__
  • link:[text](http://url.com/ "başlık")
  • resim?![alt text](/path/img.jpg "başlık")
  • liste: 1. Foo 2. Bar
  • temel HTML etiketleri de kullanılabilir

Bu sorunun etiketleri:

×818

Soruldu: 25 Mar '14, 04:55

Görüntüleme: 1,714 kez

Son güncelleme: 26 Mar '14, 11:44

powered by BitNami OSQA