it-swarm.asia

كيف يمكنك استخدام Android Volley API؟

أفكر في تنفيذ مكتبة Android Volley في مشاريعي التالية ( Google IO العرض التقديمي حول Volley ).

ومع ذلك ، لم أجد أي واجهة برمجة تطبيقات خطيرة لتلك المكتبة.

كيف يمكنني تحميل الملفات ، والقيام بطلبات POST/GET ، وإضافة محلل Gson كمحلل JSON باستخدام Volley؟

مصدر الرمز

73
user1940676

تحرير: أخيرًا هنا تدريب رسمي حول "مكتبة Volley"

لقد وجدت بعض الأمثلة عن مكتبة Volley

آمل أن يساعدك هذا

105
Abdrahmn_msi

لسوء الحظ ، لا توجد وثائق لمكتبة Volley مثل JavaDocs حتى الآن. ريبو فقط على جيثب والعديد من البرامج التعليمية عبر الإنترنت. لذلك فإن المستندات الجيدة الوحيدة هي شفرة المصدر :). عندما لعبت مع Volley قرأت هذا البرنامج التعليمي .

حول المنشور/الحصول يمكنك قراءة هذا: الطائرة - معلمات POST/GET

أتمنى أن يساعدك هذا

10
Oleksandr Karaberov

هذا مثال على تقديم طلب POST باستخدام Volley. يستخدم StringRequest للحصول على استجابة في شكل سلسلة.
على افتراض أن واجهة برمجة التطبيقات للباقي تقوم بإرجاع JSON يتم تلقي استجابة JSON من واجهة برمجة التطبيقات (API) الخاصة بك كسلسلة هنا ، والتي يمكنك إضافتها مرة أخرى إلى JSON ومعالجتها مرة أخرى. التعليقات المضافة في التعليمات البرمجية.

StringRequest postRequest = new StringRequest(Request.Method.POST, "PUT_YOUR_REST_API_URL_HERE",
            new Response.Listener<String>() {
                @Override
                public void onResponse(String response) {
                    try {
                        final JSONObject jsonObject = new JSONObject(response);
                        // Process your json here as required
                    } catch (JSONException e) {
                        // Handle json exception as needed
                    }
                }
            },
            new Response.ErrorListener() {
                @Override
                public void onErrorResponse(VolleyError error) {
                    String json = null;
                    NetworkResponse response = error.networkResponse;
                    if(response != null && response.data != null){
                        switch(response.statusCode) {
                            default:
                                String value = null;
                                try {
                                    // It is important to put UTF-8 to receive proper data else you will get byte[] parsing error.
                                    value = new String(response.data, "UTF-8");
                                } catch (UnsupportedEncodingException e) {
                                    e.printStackTrace();
                                }
                                json = trimMessage(value, "message");
                                // Use it for displaying error message to user 
                                break;
                        }
                    }
                    loginError(json);
                    progressDialog.dismiss();
                    error.printStackTrace();
                }  
                public String trimMessage(String json, String key){
                    String trimmedString = null;
                    try{
                        JSONObject obj = new JSONObject(json);
                        trimmedString = obj.getString(key);
                    } catch(JSONException e){
                        e.printStackTrace();
                        return null;
                    }
                    return trimmedString;
                }
            }
    ) {
        @Override
        protected Map<String, String> getParams() {
            Map<String, String> params = new HashMap<>();
            params.put("abc", "pass abc");
            params.put("xyz", "pass xyz");
            // Pass more params as needed in your rest API
    // Example you may want to pass user input from EditText as a parameter
    // editText.getText().toString().trim()
            return params;
        }  
        @Override
        public String getBodyContentType() {
            // This is where you specify the content type
            return "application/x-www-form-urlencoded; charset=UTF-8";
        }
    };

    // This adds the request to the request queue
    MySingleton.getInstance(YourActivity.this)
.addToRequestQueue(postRequest);

//فيما يلي فئة MySingleton

public class MySingleton {
    private static MySingleton mInstance;
    private RequestQueue mRequestQueue;
    private static Context mCtx;  
    private MySingleton(Context context) {
        mCtx = context;
        mRequestQueue = getRequestQueue();
    }

    public static synchronized MySingleton getInstance(Context context) {
        if (mInstance == null) {
            mInstance = new MySingleton(context);
        }
        return mInstance;
    }

    public RequestQueue getRequestQueue() {
        if (mRequestQueue == null) {
            // getApplicationContext() is key, it keeps you from leaking the
            // Activity or BroadcastReceiver if someone passes one in.
            mRequestQueue = Volley.newRequestQueue(mCtx.getApplicationContext());
        }
        return mRequestQueue;
    }

    public <T> void addToRequestQueue(Request<T> req) {
        getRequestQueue().add(req);
    }
}
3
developer1011

فقط أضف مكتبة volley.jar إلى مشروعك. وثم

حسب وثائق Android:

// Instantiate the RequestQueue.
RequestQueue queue = Volley.newRequestQueue(this);
String url ="http://www.google.com";

// Request a string response from the provided URL.
StringRequest stringRequest = new StringRequest(Request.Method.GET, url,
            new Response.Listener<String>() {
    @Override
    public void onResponse(String response) {
        // process your response here

    }
}, new Response.ErrorListener() {
    @Override
    public void onErrorResponse(VolleyError error) {
        //perform operation here after getting error
    }            
});
// Add the request to the RequestQueue.
queue.add(stringRequest);

لمزيد من المساعدة ، راجع كيفية استخدام Volley

1
pathe.kiran

قبل اختبار جميع الإجابات المذكورة أعلاه ، وتشمل

compile 'com.Android.volley:volley:1.0.0'

في ملف التعريف الخاص بك ولا تنسَ إضافة إذن الإنترنت إلى ملف البيان الخاص بك.

0
Kanagalingam

استخدم هذا الفصل يوفر لك طريقة سهلة للاتصال بقاعدة البيانات.

public class WebRequest {

    private Context mContext;
    private String mUrl;
    private int mMethod;
    private VolleyListener mVolleyListener;

    public WebRequest(Context context) {
        mContext = context;
    }

    public WebRequest setURL(String url) {
        mUrl = url;
        return this;
    }

    public WebRequest setMethod(int method) {
        mMethod = method;
        return this;
    }

    public WebRequest readFromURL() {
        RequestQueue requestQueue = Volley.newRequestQueue(mContext);
        StringRequest stringRequest = new StringRequest(mMethod, mUrl, new Response.Listener<String>() {
            @Override
            public void onResponse(String s) {
                mVolleyListener.onRecieve(s);
            }
        }, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError volleyError) {
                mVolleyListener.onFail(volleyError);
            }
        });

        requestQueue.add(stringRequest);
        return this;
    }

    public WebRequest onListener(VolleyListener volleyListener) {
        mVolleyListener = volleyListener;
        return this;
    }

    public interface VolleyListener {
        public void onRecieve(String data);

        public void onFail(VolleyError volleyError);
    }
}

مثال للاستخدام:

new WebRequest(mContext)
     .setURL("http://google.com")
     .setMethod(Request.Method.POST)
     .readFromURL()
     .onListener(new WebRequest.VolleyListener() {
         @Override
         public void onRecieve(String data) {
         }

         @Override
         public void onFail(VolleyError volleyError) {
         }
     });
0
Hadi Note
private void userregister() {

  final  ProgressDialog pDialog = new ProgressDialog(this);
    pDialog.setMessage("Loading...");
    pDialog.show();

    RequestQueue queue = Volley.newRequestQueue(SignupActivity.this);
    String url = "you";
    StringRequest stringRequest = new StringRequest(Request.Method.POST, url,
            new Response.Listener<String>() {
                @Override
                public void onResponse(String response) {
                    pDialog.cancel();

                    try {
                        JSONObject jsonObject= new JSONObject(response.toString());
                        Log.e("status", ""+jsonObject.getString("status"));
                        if(jsonObject.getString("status").equals("success"))
                        {
                            String studentid=jsonObject.getString("id");
                            Intent intent=new Intent(SignupActivity.this, OTPVerificationActivity.class);
                            startActivity(intent);
                            finish();
                        }

                    } catch (JSONException e) {
                        e.printStackTrace();
                    }
                    Log.e("String ", ""+response);

                }
            }, new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {

        }
    }) {

        @Override
        protected Map<String, String> getParams() throws AuthFailureError {
            Map<String, String> params = new HashMap<>();
            params.put("password", input_password.getText().toString());
            params.put("cpassword", input_reEnterPassword.getText().toString());
            params.put("email", input_email.getText().toString());
            params.put("status", "1");
            params.put("last_name", input_lastname.getText().toString());
            params.put("phone", input_mobile.getText().toString());
            params.put("standard", input_reStandard.getText().toString());
            params.put("first_name", input_name.getText().toString());
            params.put("refcode", input_reReferal.getText().toString());
            params.put("created_at","");
            params.put("update_at", "");
            params.put("address", input_address.getText().toString());
            return params;
        }
    };
    // Add the request to the RequestQueue.
    queue.add(stringRequest);

احصل على الكود الكامل هنا

0
Raghavendra Pratap Rai

بطريقة بسيطة

 private void load() {
    JsonArrayRequest arrayreq = new JsonArrayRequest(ip.ip+"loadcollege.php",
            new Response.Listener<JSONArray>() {

                @Override
                public void onResponse(JSONArray response) {

                    Album a;

                    try {
                        JSONArray data = new JSONArray(response.toString());
                        for (int i = 0; i < data.length(); i++) {
                            JSONObject c = data.getJSONObject(i);
                            one = c.getString("cname").split(",");
                            two=c.getString("caddress").split(",");
                            three = c.getString("image").split(",");
                            four = c.getString("cid").split(",");
                            five = c.getString("logo").split(",");




                            a = new Album(one[0].toString(),two[0].toString(),ip.ip+"images/"+ three[0].toString(),four[0].toString(),ip.ip+"images/"+ five[0].toString());
                            albumList.add(a);

                        }
                        adapter.notifyDataSetChanged();


                    } catch (JSONException e) {
                        e.printStackTrace();
                    }
                }
            },
            // The final parameter overrides the method onErrorResponse() and passes VolleyError
            //as a parameter
            new Response.ErrorListener() {
                @Override
                // Handles errors that occur due to Volley
                public void onErrorResponse(VolleyError error) {
                    Log.e("Volley", "Error");
                }
            }
    );
    // Adds the JSON array request "arrayreq" to the request queue
    requestQueue.add(arrayreq);
}
0
Thasreef Mogral