Soru & Cevap

Android Json Çekme Sorunu

29.01.2016 - 05:20

Merhaba Arkdaşlar ,

benim şöyle bir problemim var androidde json verisini parse ederek web siteden veri çekmek istiyorum bir çok ders izledim uygulamalarınıda yaptım sorun yok ancak php dosyamı sunucuma atıp projemi çalıştırınca json hatası alıyorum. Yani kendi php suncumdaki json çıktısını veren dosyama erişemiyorum her hangi bir yerde kodlamada hata da vermiyor. Son olarak http://www.mobilhanem.com/android-http-post-ve-json-parse-etme/ bu adresteki dersin kodlarını indirdim ve sorunsuz çalıştı (derste anlatılan örnek php sunucusuna bağlandım). Bu projenin sadece bağlandığı url adresini kendi sunucum yapıp aynı php dosyasını sunucuma attım ancak bu sefer hata aldım. Sizce bunun nedeni nedir ? bir türlü çözemedim. yardımcı olursanız memnun olurum.

iyi çalışmalar...

150 Görüntülenme

6 Cevap

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

Profile picture for user umitdemirel.ozgenpls
umitdemirel.ozgenpls
30.01.2016 - 07:25
MongoLab ı hiç duymamıştım sagolun bu konuyu araştırıcam ayrıca ilginiz için tesekkur ederim.
Profile picture for user umitdemirel.ozgenpls
umitdemirel.ozgenpls
30.01.2016 - 03:58

Merhaba , bu alt kısımdaki php kodlarında mı bir hata var yoksa verdiğim örnekteki sunucudaki json çıktısından mı bahsediyorsunuz . Aşağıdaki kodda ben bir hata göremedim de ondan soruyorum.

<?php 
sleep(2); //Kişi bilgileri getiriliyor... yazısının daha uzun gözükmesi için
if($_POST){ //Post tan geliyorsa işlem yapması için
    $kisi = $_POST["kisi"]; //gelen kisi variable değerini aldık Spiinerdan sectiğimiz kişi değeri
    if($kisi==1){ 
       $bilgiler = array('isim' => "Taha Kırca", 'yas' => "26", 'mail' => "tahakirca@mobilhanem.com", 'adres' => "Ankara"); //Json arrayi olusturduk
    }else{
         $bilgiler = array('isim' => "Aycan Ayhan", 'yas' => "26", 'mail' => "aycanayhan@mobilhanem.com", 'adres' => "İstanbul"); //Json arrayi olusturduk
    }
    echo json_encode ($bilgiler); //Json arrayi encode ediyoruz. Yani $arr arrayini json arraya çeviriyoruz.
}
?>

 

Ümit
30.01.2016 - 04:10
Sanırım siz en üstte verdiğim php kodundan bahsediyorsunuz o kodu buraya kopyalarken sanırım bir hata oluştu ondan bir tene "}" simgesi eksik ancak sunucudakinde böyle bir problem yok ona baktım ancak yinede çalışmadı sizin için bir sakıncası yoksa deneme yaptığınız kendi sunucunuzun ilgili json çıktısını veren php dosyanızın url adresini yazabilirmisiniz birde sizinkinden deneme yapayım dediğiniz gibi sunucudan ise bu ortaya çıkar.
Umut ONUR
30.01.2016 - 05:59
tabiiki.. http://umutonur.com/calisma.php adresinden deneyin
Ümit
30.01.2016 - 06:32
çalıştı :) sanırım benim sunucudan dolayı böyle bir hata aldım acaba sunucunuzun phpinfo ile yüklü eklentilere bakabilir misiniz ? yada bunun sizce nedeni ne olabilir belliki benim test ettiğim sunucuda bir şeyler eksik onu bulmak istiyorum.
Umut ONUR
30.01.2016 - 07:20
bazı sunucularda izin problemi olabiliyor. Benim hiç başıma gelmedi ama Stackoverflow'da bir kaç kez denk gelmiştim. Eğer bu şekilde JSON ile çalışacaksan MongoLab'ı kullanabilirsin. Yanlış hatırlamıyorsam ücretsiz olarak 500 MB kadar JSON verisi saklayabiliyorsun. Hem hızlı, hemde erişim problemin olmaz.
picture-28812-1452251417.jpg
umutonur
30.01.2016 - 01:38

Merhaba Ümit.. 
Verdiğim php kodlarında sanırım 1 tane "}" eksik gibi görünüyor. Onu düzeltirsen çalışması gerek.

 

Ben kendi hostuma atıp denedim. Sorun çıkmadı.
Eğer sende aynı şekilde denediğinde sorun çıkıyorsa; kullandığın hosting'le alakalı bir durum söz konusu olabilir. 
 

Profile picture for user umitdemirel.ozgenpls
umitdemirel.ozgenpls
30.01.2016 - 12:41

Eğer android studio kodlarımı görmek isterseniz main_activity kodları aşağıdaki gibi ayrıca php nin çalıştığı sayfayıda ekledim çıktısına bakabilirsiniz.

public class MainActivity extends AppCompatActivity {

    final static String URI = "http://calisma.my-board.org/isim2.php";
    TextView tvData;
    JSONObject json;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        tvData = (TextView)findViewById(R.id.txtView);
        new Game().execute("ogrenci_adi");
    }

    protected JSONObject gamepark() throws IOException, JSONException {
        HttpClient client = new DefaultHttpClient();
        HttpGet get = new HttpGet(URI);
        HttpResponse response = client.execute(get);
        StatusLine status = response.getStatusLine();
        int s = status.getStatusCode();
        if(s==200)
        {
            HttpEntity e = response.getEntity();
            String data = EntityUtils.toString(e);
            JSONArray posts = new JSONArray(data);
            JSONObject last = posts.getJSONObject(0);
            return last;

        }
        return null;
    }
    public class Game extends AsyncTask<String,String,String>
    {

        @Override
        protected String doInBackground(String... params) {
            try {
                json = gamepark();
                String data = json.getString(params[0]);
                return data;
            } catch (IOException e) {
                e.printStackTrace();
            } catch (JSONException e) {
                e.printStackTrace();
            }

            return null;
        }

        @Override
        protected void onPostExecute(String data) {
            tvData.setText(data);
        }
    }

}

php dosyamın adresi ve çıktısı : http://calisma.my-board.org/isim2.php

ben buradaki örnek olarak verilen bilgileri çekmek istiyorum ancak bir türlü olmadı

Profile picture for user umitdemirel.ozgenpls
umitdemirel.ozgenpls
29.01.2016 - 11:01

php kısmında çalışan kodları dersi anlatan makaleden aldım zaten üzerinde bir oynama yapmadım ama isterseniz yinede burun.

<?php 
sleep(2); 
if($_POST){ 
    $kisi = $_POST["kisi"]; 
    if($kisi==1){ 
       $bilgiler = array('isim' => "Taha Kırca", 'yas' => "26", 'mail' => "tahakirca@mobilhanem.com", 'adres' => "Ankara"); 
    }else{
         $bilgiler = array('isim' => "Aycan Ayhan", 'yas' => "26", 'mail' => "aycanayhan@mobilhanem.com", 'adres' => "İstanbul"); 
    }
    echo json_encode ($bilgiler); 
?>


 

picture-11052-1576825910.jpg
alikarakoc
29.01.2016 - 10:13

PHP tarafında mutlaka bir hata yapmışsındır o zaman. Kodlarını kontrol et php kodlarını buraya koyarsan daha iyi sonuçlar elde edebilirsin.

Kolay gelsin.