Merhaba,
Android ile uğraşıyorsanız mutlaka bir servis kullanıyorsunuzdur. Ben servis olarak Json kullanıyorum. Bu servis ile Android tarafında Volley kütüphanesi ile haberleşiyorum. Eğer zorlanan arkadaşlar varsa Volley nasıl kullanılır ufak bir örnekle anlatmaya çalışacağım.
1. Adım
Öncelikle volley.jar ‘ı indirip. Projemizde app/libs/ içine kopyalamamız gerekiyor.
2. Adım
Kopyaladıktan sonra Android studio kullananlar için “proje sağ tuş – Open Module Setting – Dependencies – Add( alt+insert) – file dependencies” diyerek /libs içinde ki volleyi bağımlılıklara ekliyoruz.
3. Adım
AndroidManifest.xml dosyasını açıp içersine aşağıdaki yetkiyi ekliyoruz.
<uses-permission android:name="android.permission.INTERNET"/>
4. Adım
volley sınıfı olan kodları yeni bir sınıf oluşturup “AppController.java” diyerek kayıt ediyoruz. Ve bunu /src/main/java/” içersine ekliyoruz.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | public class AppController extends Application { public static final String TAG = AppController.class.getSimpleName(); private RequestQueue mRequestQueue; private static AppController mInstance; @Override public void onCreate() { super.onCreate(); mInstance = this; } public static synchronized AppController getInstance() { return mInstance; } public RequestQueue getRequestQueue() { if (mRequestQueue == null) { mRequestQueue = Volley.newRequestQueue(getApplicationContext()); } return mRequestQueue; } public void addToRequestQueue(Request req, String tag) { req.setTag(TextUtils.isEmpty(tag) ? TAG : tag); getRequestQueue().add(req); } public void addToRequestQueue(Request req) { req.setTag(TAG); getRequestQueue().add(req); } public void cancelPendingRequests(Object tag) { if (mRequestQueue != null) { mRequestQueue.cancelAll(tag); } } } |
5. Adım
Her sınıf eklendikten sonra AndroidMaifest.xml ‘e bu sınıf kayıt edilmelidir. Bizde açıp aşağıdaki kodu “application” tagından sonra ekliyoruz.
android:name=".AppController"
6. Adım
Adım Son olarak json formatınıza göre sınıf yazmanız gerekiyor. Ben Array yapısını kullanıyorum, Json formatım şu:
{ "error": false, "sabitler": [ { "yoneticiAdi": "Erkan Yeşersin", "yoneticiMail": "yesersin@gmail.com", "yoneticiTel": "123456", "yoneticiIban": "TR10200020000200002000000", "karOrani": "20" } ] }
7. Adım
Veri çekmek için kullandıgımız sınıfımda şu şekilde:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | private void JsonOrnegiFonksiyonu(){ final StringRequest strReq = new StringRequest(Request.Method.GET, "http://erkanyesersin.com/ornekJson.php", new Response.Listener<String>() { @Override public void onResponse(String response) { try { jsonResponse = ""; JSONObject jObj=new JSONObject(response); boolean error = jObj.getBoolean("error"); if (!error) { JSONArray questionsArray = jObj.getJSONArray("sabitler"); for (int i = 0; i < questionsArray.length(); i++) { JSONObject c = questionsArray.getJSONObject(i); String yoneticiAdi = c.getString("yoneticiAdi"); String yoneticiMail = c.getString("yoneticiMail"); String yoneticiIban = c.getString("yoneticiIban"); jsonResponse += "Name: " + yoneticiAdi + "\n\n"; jsonResponse += "Email: " + yoneticiMail + "\n\n"; jsonResponse += "Home: " + yoneticiIban + "\n\n"; } txtResponse.setText(jsonResponse); } } catch (JSONException e) { Log.i("BekleyenSiparis","Excep "+e.getMessage()); e.printStackTrace(); } } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError error) { VolleyLog.d(TAG, "Error: " + error.getMessage()); Toast.makeText(getApplicationContext(), error.getMessage(), Toast.LENGTH_SHORT).show(); } }); AppController.getInstance().addToRequestQueue(strReq, "ConstantInfo"); } |
8. Adım
Veri göndermek için kullandıgımız sınıfımda şu şekilde:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | private void jsonSave(){ StringRequest stringRequest = new StringRequest(Request.Method.POST, "http://erkanyesersin.com/test.php",new Response.Listener<String>(){ @Override public void onResponse(String response) { try { JSONObject jObj = new JSONObject(response); Toast.makeText(getApplicationContext(),jObj.getString("mesaj"),Toast.LENGTH_LONG).show(); } catch (JSONException e) { e.printStackTrace(); } } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError error) { Log.e(TAG, "Registration Error: " + error.getMessage()); Toast.makeText(getApplicationContext(), error.getMessage(), Toast.LENGTH_LONG).show(); } }) { //Esas post işini yapan kısım. @Override protected Map<String, String> getParams() { Map<String, String> params = map; map.put("test", "erkanssss"); //burada put: ilk parameter $_POST["test"] olandır. Diğeride postun değeridir. return params; } }; AppController.getInstance().addToRequestQueue(stringRequest, "ers"); } |