আন্ড্রয়েড Volley তে সিম্পল পোস্ট

অ্যান্ড্রয়েডে HTTP লাইব্রেরী হিসেবে Volley ব্যবহার টিউটোরিয়ালে আমরা দেখেছি কিভাবে কোন সার্ভিস থেকে ডেটা রিড করা যায়। আমরা এবার দেখব কিভাবে ডেটা সার্ভারে পোস্ট করা যায়।

 

ডেটা পোস্ট করার জন্য Volley এর পোস্ট মেথড রয়েছে। পোস্ট করার জন্য ডেটা গুলো প্যারামিটার হিসেবে সাধারণত Key Value আকারে পাঠাতে হয়। প্রথমে থাকবে key এরপর value। আর Key Value পেয়ারের জন্য আমরা ম্যাপ ব্যবহার করব।

 

        // Key value map of POST data
            protected Map<String,String> getParams(){
                Map<String,String> params = new HashMap<String, String>();
                params.put("name",name);
                params.put("email",email);
                return params;
            }

 

এরপর সাধারণত একটা String Request করতে হয়। এর আগে আমরা String রিকোয়েস্ট করে ডেটা রিড করেছি। মানে GET ব্যবহার করেছি। এবার করব POST:

        // Get and set data form your view. Currenty we are using Static data
        String url = "your url";
        final String name = "your name";
        final String email = "your email";

        StringRequest stringRequest = new StringRequest(Request.Method.POST, url,
                new Response.Listener<String>() {
                    @Override
                    public void onResponse(String response) {
                        Toast.makeText(MainActivity.this,response,Toast.LENGTH_LONG).show();
                    }
                },
                new Response.ErrorListener() {
                    @Override
                    public void onErrorResponse(VolleyError error) {
                        Toast.makeText(MainActivity.this,error.toString(),Toast.LENGTH_LONG).show();
                    }
                }){
            @Override

            // Key value map of POST data
            protected Map<String,String> getParams(){
                Map<String,String> params = new HashMap<String, String>();
                params.put("name",name);
                params.put("email",email);
                return params;
            }

        };

        RequestQueue requestQueue = Volley.newRequestQueue(this);
        requestQueue.add(stringRequest);

সম্পূর্ণ MainActivity.java:

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;

import com.android.volley.Request;
import com.android.volley.RequestQueue;
import com.android.volley.Response;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.StringRequest;
import com.android.volley.toolbox.Volley;

import java.util.HashMap;
import java.util.Map;

public class MainActivity extends AppCompatActivity {

    Button btn;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        btn = (Button) findViewById(R.id.button);

        btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                postData();
            }
        });
    }

    private void postData() {


        // Get and set data form your view. Currenty we are using Static data
        String url = "your url";
        final String name = "your name";
        final String email = "your email";

        StringRequest stringRequest = new StringRequest(Request.Method.POST, url,
                new Response.Listener<String>() {
                    @Override
                    public void onResponse(String response) {
                        Toast.makeText(MainActivity.this,response,Toast.LENGTH_LONG).show();
                    }
                },
                new Response.ErrorListener() {
                    @Override
                    public void onErrorResponse(VolleyError error) {
                        Toast.makeText(MainActivity.this,error.toString(),Toast.LENGTH_LONG).show();
                    }
                }){
            @Override

            // Key value map of POST data
            protected Map<String,String> getParams(){
                Map<String,String> params = new HashMap<String, String>();
                params.put("name",name);
                params.put("email",email);
                return params;
            }

        };

        RequestQueue requestQueue = Volley.newRequestQueue(this);
        requestQueue.add(stringRequest);

    }
}

এখানে পোস্ট করার জন্য your url এর জায়গায় আপনার সার্ভারের post url দিতে হবে। এবং map এর ভ্যালু গুলো ঐ url এ ডেটা পোস্ট করার জন্য যে ভ্যালু গুলো লাগবে, সেগুলো যুক্ত করতে হবে।

Leave a Reply