Soru & Cevap

Android 4.2.2 ile postetme sorunu ...

16.05.2014 - 10:20

Merhaba arkadaşlar,android 4.2.2 ile web ortamına veri göndermeye çalışıyorum fakat program hata veriyor ve kapanıyor

uygulamada veri göndermeye çalıştığım bölüm şu şekilde

package com.arslansahin.webrehber;

import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.List;

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.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;


public class HttpSend extends Activity{
    

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.httpsend);
    }
    
    public void onClick_postData(View v) throws ClientProtocolException{
        
        TextView numaraListesi = (TextView) findViewById(R.id.numaraListesi);
        
        Bundle veriTasi = getIntent().getExtras();    
        
        String posst = veriTasi.getString("tasinanVeriler");    
        
        numaraListesi.setText(posst);
        
        HttpClient client = new DefaultHttpClient();
        
        HttpPost httppost = new HttpPost("http://populasyon.com/apk/wr.php");


        try {
            
            List<NameValuePair> namevp = new ArrayList<NameValuePair>();
            namevp.add(new BasicNameValuePair("datalar","test verisi"));
            httppost.setEntity(new UrlEncodedFormEntity(namevp));
            HttpResponse response = client.execute(httppost);

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

}

 

 

1 Görüntülenme

4 Cevap

Sitedeki sorulara cevap verebilmek için giriş yapın ya da üye olun.

picture-10880-1499430298.png
halil.oncen
18.05.2014 - 01:50

http://loopj.com/android-async-http/

Buradan AsyncHttpClient kütüphanesini indirerekte yapabilirsin. Senin için küçük bir örnek;

String address = "http://www.gelecegiyazanlar.org/"; 

AsyncHttpClient client = new AsyncHttpClient(); // İstek Yapmak İçin client Nesnesi Oluşturuldu

RequestParams params = new RequestParams(); // Parametreler için params Nesnesi Oluşturuldu

params.put("key", "value"); // put() metodu ile params nesnesinde parametreler anahtar-değer şeklinde saklandı

client.post( address, params, new AsyncHttpResponseHandler(){

       public void onSuccess(String response){

               // İstek Başarılı

       }

}); // Http İsteği Post Edildi

 

picture-7227-1382523744.jpg
arslansahin
18.05.2014 - 12:43

Android 4.0.3 sürümünde deneme şansım oldu ve o sürümdede aynı şekilde uygulama sonlandırılıyor,bilgisayarda emülator aracılığı ile deneme yapamıyorım cihaz üzerinde test etmeye çalışıyorum.

AsyncTask konusunu araştırıp o şekilde bir deneme yapayım.

 

picture-10880-1499430298.png
halil.oncen
17.05.2014 - 01:40

Android 4 ve üzerinde Web servis ile iletişim kurma vb. uzun süreli işlemler için AsyncTask kullanmalısınız. 4 öncesinde sorun yaratmayabilir ama 4 ve sonrasında android daha da akıllandı, artık işlemin uzun süreceğini anlıyor ve AsyncTask kullanılmamışsa uygulamayı sonlandırıyor.