folder Tahribat.com Forumları
linefolder Android - IOS Programlama
linefolder Android Webservis Konusunda Yardım



Android Webservis Konusunda Yardım

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    camarade
    ontedi
    ontedi's avatar
    Kayıt Tarihi: 04/Eylül/2005
    Erkek

    Arkadaşlar şimdi bir webservis hazırlayıp bunu android tarafında okuyacağım. Fakat verdiği hatayı bir türlü çözüme kavuşturamadım

     

    Retrofit kullanıyorum bu arada

    falancafilanca.com/webservis.asp?get_islem=listele tarayıcı üzerinde çalıştırınca

    [{ "uye_ID":"4", "Ad":"Aziz", "Soyad":"NESİN", "Sehir":"İstanbul" },{ "uye_ID":"5", "Ad":"Cem", "Soyad":"YILMAZ", "Sehir":"Sivas" },{ "uye_ID":"6", "Ad":"Kadir", "Soyad":"İNANIR", "Sehir":"Ordu" }]

     

    falancafilanca.com/webservis.asp?get_islem=getir tarayıcı üzerinde çalıştırınca

    [{ "uye_ID":"5", "Ad":"Cem", "Soyad":"YILMAZ", "Sehir":"Sivas" }]

     

    Şeklinde getiriyorum JSON verilerini. Bu adresi Android tarafında Retrofit ile çağırmak istediğimde

     

        @GET("....webservis.asp")
        Call<uyeler> fnGet_Uyeler_Getir(@Query("get_islem") String get_islem);
    
        @GET("...webservis.asp")
        Call<List<uyeler>> fnGet_Uyeler_Listele(@Query("get_islem") String get_islem);

     

    anasayfa activityde ise şu şekilde yapıyorum

     

            Call<uyeler> call = apiInterface.fnGet_Uyeler_Getir("getir");
            call.enqueue(new Callback<uyeler>() {
                @Override
                public void onResponse(Call<uyeler> call, Response<uyeler> response) {
                    Log.d("basarili",response.code()+"");
                    String strSonuc = "";
                    uyeler resource = response.body();
                    String strAd = resource.Ad;
                    String strSoyad = resource.Soyad;
                    strSonuc += strAd + " - " + strSoyad + "\n";
                    tvYazi.setText(strSonuc);
                }
                @Override
                public void onFailure(Call<uyeler> call, Throwable t) {
                    call.cancel();
                    Log.d("basarisiz: ",t.toString());
                }
            });

     

    Şeklinde çalıştırdığımda 

    com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_OBJECT but was BEGIN_ARRAY at line 1 column 2 path $

     

    şeklinde hata vermektedir. Nete baktım bunu çözüme kavuşturamadım. Yardımlarınızı şimdiden bekliyorum.

     


    Matematikçi ve Yazılımcı. http://www.ontedi.com ve http://www.cizgi.site Siteme beklerim herkesi.
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Mad Scientist
    AMpul
    AMpul's avatar
    Kayıt Tarihi: 31/Aralık/2009
    Erkek

    Haci hatayi okudun mu?

    Object bekliyorum array geliyor diyor. Json'u su sekilde dondur.

    {

        "result": [...]

    }


    What I cannot create, I do not understand. — Richard Feynman
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    camarade
    ontedi
    ontedi's avatar
    Kayıt Tarihi: 04/Eylül/2005
    Erkek

    Hocam, dediğin gibi çevirdim fakat bu sefer de hiç veri gelmiyor

     

    https://api.myjson.com/bins/mvhxo

     

    örnek json burada, 2 gündür kafayı yedirtecek bir türlü bulamadım. Android taraflı bir şey gözden mi kaçırıyorum bilemedim ki


    Matematikçi ve Yazılımcı. http://www.ontedi.com ve http://www.cizgi.site Siteme beklerim herkesi.
  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Mad Scientist
    AMpul
    AMpul's avatar
    Kayıt Tarihi: 31/Aralık/2009
    Erkek

    Android'le ne alakasi olacak hocam. Json'u dogru decode/unmarshal edemiyorsundur kendi veri yapilarina. Gelen datayi yazdiriyor musun raw haliyle?

    uyeler resource = response.body(); 

    Burada response json array iken sen direkt tek bir uye objesine ceviriyorsun, resource.Ad filan diye erisiyorsun, array'e atayip resource[0].Ad gibi erismen lazim. Java'dan anlamadigim icin pseudo code soyle olabilir;

    uyeler resource[] = response.body(); // uyeler'in kendisi zaten arrayse degistirmene gerek yok, erisirken hata yapiyorsundur.
    String strAd = resource[0].Ad;

    Json'u eski haline getir (array donduren), gelen result'u dogru decode etmeyi arastir, javaci bir muhterem ornek kod gosterebilir.

    AMpul tarafından 09/Ağu/18 16:36 tarihinde düzenlenmiştir

    What I cannot create, I do not understand. — Richard Feynman
  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    manyaki
    manyaki's avatar
    Kayıt Tarihi: 27/Temmuz/2005
    Erkek

    Android'le alakalı değildir hocam kod paylaşsan daha rahat yardımcı olurdum ama büyük ihtimalle gelen raw veriyi doğru şekilde parse edemedin. Ben direk çalışan kod paylaşıyım sana incelersin.

     

    public class MainActivity extends AppCompatActivity {
    
        Button btnHit;
    
        ProgressDialog pd;
    
        private String uyeId, ad, soyad, sehir;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            btnHit = (Button) findViewById(R.id.btn_hit);
    
    
            btnHit.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    new JsonTask().execute("https://api.myjson.com/bins/mvhxo");
                }
            });
    
    
        }
    
    
        private class JsonTask extends AsyncTask<String, String, String> {
    
            protected void onPreExecute() {
                super.onPreExecute();
    
                pd = new ProgressDialog(MainActivity.this);
                pd.setMessage("Please wait");
                pd.setCancelable(false);
                pd.show();
            }
    
            protected String doInBackground(String... params) {
    
    
                HttpURLConnection connection = null;
                BufferedReader reader = null;
    
                try {
                    URL url = new URL(params[0]);
                    connection = (HttpURLConnection) url.openConnection();
                    connection.connect();
    
    
                    InputStream stream = connection.getInputStream();
    
                    reader = new BufferedReader(new InputStreamReader(stream));
    
                    StringBuffer buffer = new StringBuffer();
                    String line = "";
    
                    while ((line = reader.readLine()) != null) {
                        buffer.append(line+"\n");
                        Log.d("Response: ", "> " + line);   //here u ll get whole response...... :-)
    
                    }
    
                    return buffer.toString();
    
    
                } catch (MalformedURLException e) {
                    e.printStackTrace();
                } catch (IOException e) {
                    e.printStackTrace();
                } finally {
                    if (connection != null) {
                        connection.disconnect();
                    }
                    try {
                        if (reader != null) {
                            reader.close();
                        }
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
                return null;
            }
    
            @Override
            protected void onPostExecute(String result) {
                super.onPostExecute(result);
    
                try {
                    JSONObject jsonObject = new JSONObject(result);
    
                   uyeId = jsonObject.getJSONArray("uyeler").getJSONObject(0).getString("uye_ID");
                    ad = jsonObject.getJSONArray("uyeler").getJSONObject(0).getString("Ad");
                    soyad = jsonObject.getJSONArray("uyeler").getJSONObject(0).getString("Soyad");
                    sehir = jsonObject.getJSONArray("uyeler").getJSONObject(0).getString("Sehir");
                } catch (JSONException e) {
                    e.printStackTrace();
                }
                if (pd.isShowing()){
                    pd.dismiss();
                }
            }
        }
    }



    since 2005 // tbt
  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    MhmdAlmz
    MhmdAlmz's avatar
    Kayıt Tarihi: 09/Ağustos/2015
    Erkek

    Retrofit/Volley kullanma abi bence. Kendi kütüphaneni yazabilirsin Manyaki'nin attığı yöntem ile. 

    Çok daha güzel ürünler ortaya çıkar. Ben öyle yapmıştım hiç yoktan ogeldi de bu hata verdi uğraşma elinde JSON veri var parse et Class'ı oluştur. Biraz amelelik gerektiriyor o ameleliği de kütüphaneni güncelleyerek giderirsin zaten. Kolay gelsin.


    Andolsun kuşluk vaktine ve dindiği zaman o geceye ki, Rabbin sana veda etmedi ve darılmadı! Ve kesinlikle senin için sonu önünden (ahiret dünyadan) daha hayırlıdır. ileride Rabbin sana verecek de hoşnut olacaksın! O, seni bir yetim iken barındırmadı mı? Seni, yol bilmez iken (doğru) yola koymadı mı? Seni bir yoksul iken zengin etmedi mi? Öyle ise, sakın yetime kahretme (onu horlama)! El açıp isteyeni de azarlama! Fakat Rabbinin nimetini anlat da anlat!
  7. KısayolKısayol reportŞikayet pmÖzel Mesaj
    camarade
    ontedi
    ontedi's avatar
    Kayıt Tarihi: 04/Eylül/2005
    Erkek
    MhmdAlmz bunu yazdı

    Retrofit/Volley kullanma abi bence. Kendi kütüphaneni yazabilirsin Manyaki'nin attığı yöntem ile. 

    Çok daha güzel ürünler ortaya çıkar. Ben öyle yapmıştım hiç yoktan ogeldi de bu hata verdi uğraşma elinde JSON veri var parse et Class'ı oluştur. Biraz amelelik gerektiriyor o ameleliği de kütüphaneni güncelleyerek giderirsin zaten. Kolay gelsin.

    Ya uygulama hali hazırda Manyaki'nin verdiği sistemle çalışıyor, ben biraz daha geliştirip hazır kütüphanelerle ilerlemek istiyorum. 


    Matematikçi ve Yazılımcı. http://www.ontedi.com ve http://www.cizgi.site Siteme beklerim herkesi.
  8. KısayolKısayol reportŞikayet pmÖzel Mesaj
    MhmdAlmz
    MhmdAlmz's avatar
    Kayıt Tarihi: 09/Ağustos/2015
    Erkek
    ontedi bunu yazdı
    MhmdAlmz bunu yazdı

    Retrofit/Volley kullanma abi bence. Kendi kütüphaneni yazabilirsin Manyaki'nin attığı yöntem ile. 

    Çok daha güzel ürünler ortaya çıkar. Ben öyle yapmıştım hiç yoktan ogeldi de bu hata verdi uğraşma elinde JSON veri var parse et Class'ı oluştur. Biraz amelelik gerektiriyor o ameleliği de kütüphaneni güncelleyerek giderirsin zaten. Kolay gelsin.

    Ya uygulama hali hazırda Manyaki'nin verdiği sistemle çalışıyor, ben biraz daha geliştirip hazır kütüphanelerle ilerlemek istiyorum. 

    Ben yazdığım bütün android uygulamalarını bu şekilde yazdım bir sıkıntısı da yok. Kütüphanemi oluşturdum çatır çatır geliştiriyorumyok hataymış bilmem neymiş uğraşmıyorum.


    Andolsun kuşluk vaktine ve dindiği zaman o geceye ki, Rabbin sana veda etmedi ve darılmadı! Ve kesinlikle senin için sonu önünden (ahiret dünyadan) daha hayırlıdır. ileride Rabbin sana verecek de hoşnut olacaksın! O, seni bir yetim iken barındırmadı mı? Seni, yol bilmez iken (doğru) yola koymadı mı? Seni bir yoksul iken zengin etmedi mi? Öyle ise, sakın yetime kahretme (onu horlama)! El açıp isteyeni de azarlama! Fakat Rabbinin nimetini anlat da anlat!
  9. KısayolKısayol reportŞikayet pmÖzel Mesaj
    SUPERBICO
    SUPERBICO's avatar
    Kayıt Tarihi: 13/Haziran/2008
    Erkek
    MhmdAlmz bunu yazdı
    ontedi bunu yazdı
    MhmdAlmz bunu yazdı

    Retrofit/Volley kullanma abi bence. Kendi kütüphaneni yazabilirsin Manyaki'nin attığı yöntem ile. 

    Çok daha güzel ürünler ortaya çıkar. Ben öyle yapmıştım hiç yoktan ogeldi de bu hata verdi uğraşma elinde JSON veri var parse et Class'ı oluştur. Biraz amelelik gerektiriyor o ameleliği de kütüphaneni güncelleyerek giderirsin zaten. Kolay gelsin.

    Ya uygulama hali hazırda Manyaki'nin verdiği sistemle çalışıyor, ben biraz daha geliştirip hazır kütüphanelerle ilerlemek istiyorum. 

    Ben yazdığım bütün android uygulamalarını bu şekilde yazdım bir sıkıntısı da yok. Kütüphanemi oluşturdum çatır çatır geliştiriyorumyok hataymış bilmem neymiş uğraşmıyorum.

    La burda hata parsingden sanki retrofitten aq işkembeden atiyon.. 

  10. KısayolKısayol reportŞikayet pmÖzel Mesaj
    MhmdAlmz
    MhmdAlmz's avatar
    Kayıt Tarihi: 09/Ağustos/2015
    Erkek
    SUPERBICO bunu yazdı
    MhmdAlmz bunu yazdı
    ontedi bunu yazdı
    MhmdAlmz bunu yazdı

    Retrofit/Volley kullanma abi bence. Kendi kütüphaneni yazabilirsin Manyaki'nin attığı yöntem ile. 

    Çok daha güzel ürünler ortaya çıkar. Ben öyle yapmıştım hiç yoktan ogeldi de bu hata verdi uğraşma elinde JSON veri var parse et Class'ı oluştur. Biraz amelelik gerektiriyor o ameleliği de kütüphaneni güncelleyerek giderirsin zaten. Kolay gelsin.

    Ya uygulama hali hazırda Manyaki'nin verdiği sistemle çalışıyor, ben biraz daha geliştirip hazır kütüphanelerle ilerlemek istiyorum. 

    Ben yazdığım bütün android uygulamalarını bu şekilde yazdım bir sıkıntısı da yok. Kütüphanemi oluşturdum çatır çatır geliştiriyorumyok hataymış bilmem neymiş uğraşmıyorum.

    La burda hata parsingden sanki retrofitten aq işkembeden atiyon.. 

    Retrofitten demedim ki zaten hocam hatayı :D Hatanın sebebi zaten belli ben Kendisi Parse etsin kendisi classı oluştursun diye diyorum.. Kütüphanenin ona sunduğunun dışına çıkabilecek mi ? 


    Andolsun kuşluk vaktine ve dindiği zaman o geceye ki, Rabbin sana veda etmedi ve darılmadı! Ve kesinlikle senin için sonu önünden (ahiret dünyadan) daha hayırlıdır. ileride Rabbin sana verecek de hoşnut olacaksın! O, seni bir yetim iken barındırmadı mı? Seni, yol bilmez iken (doğru) yola koymadı mı? Seni bir yoksul iken zengin etmedi mi? Öyle ise, sakın yetime kahretme (onu horlama)! El açıp isteyeni de azarlama! Fakat Rabbinin nimetini anlat da anlat!
  11. KısayolKısayol reportŞikayet pmÖzel Mesaj
    blackseaboy28
    blackseaboy28's avatar
    Kayıt Tarihi: 07/Ağustos/2011
    Erkek
    MhmdAlmz bunu yazdı
    SUPERBICO bunu yazdı
    MhmdAlmz bunu yazdı
    ontedi bunu yazdı
    MhmdAlmz bunu yazdı

    Retrofit/Volley kullanma abi bence. Kendi kütüphaneni yazabilirsin Manyaki'nin attığı yöntem ile. 

    Çok daha güzel ürünler ortaya çıkar. Ben öyle yapmıştım hiç yoktan ogeldi de bu hata verdi uğraşma elinde JSON veri var parse et Class'ı oluştur. Biraz amelelik gerektiriyor o ameleliği de kütüphaneni güncelleyerek giderirsin zaten. Kolay gelsin.

    Ya uygulama hali hazırda Manyaki'nin verdiği sistemle çalışıyor, ben biraz daha geliştirip hazır kütüphanelerle ilerlemek istiyorum. 

    Ben yazdığım bütün android uygulamalarını bu şekilde yazdım bir sıkıntısı da yok. Kütüphanemi oluşturdum çatır çatır geliştiriyorumyok hataymış bilmem neymiş uğraşmıyorum.

    La burda hata parsingden sanki retrofitten aq işkembeden atiyon.. 

    Retrofitten demedim ki zaten hocam hatayı :D Hatanın sebebi zaten belli ben Kendisi Parse etsin kendisi classı oluştursun diye diyorum.. Kütüphanenin ona sunduğunun dışına çıkabilecek mi ? 

    Network kutuphanesinden at kosturmasını beklemezsen zaten dışına çıkmana gerek yok. Google dokumanlarda bile retrofit kullanıyor gerektigi yerlerde.

     

    Kütüphaneni asynctask kullanarak yazdıgını varsayıyorum(ion, fastandroidnetworking gibi)

    Ki Callback Interface , cache falan filan var daha

     


    Mobil uygulama geliştirilir.
Toplam Hit: 1942 Toplam Mesaj: 11
android json hatası