Android HTTPUrlConnection Kullanımı ve Web Post Get İşlemleri

Android HTTPUrlConnection Kullanımı ve Web Post Get İşlemleri

Android HTTPUrlConnection Kullanımı ve Web Post Get İşlemleri

Android ile HTTPUrlConnection ile Post İşlemine değindim.

Android HTTPUrlConnection Kullanımı ve Web Post Get İşlemleri

Bir web sayfasına Volley,Retrofit gibi kütüphaneler kullanmadan doğrudan java kütüphanesi olan HTTPUrlConnection sınıfı ile nasıl GET/POST tipinde istekte bulunabileceğinize ve nasıl response'u yakalayabileceğinize yanıt aradım.

public class SendRequest extends AsyncTask {
        String message = "";
        private void setMessage(String message){
            this.message = message;
        }

        protected void onPreExecute(){}

        protected String doInBackground(String... arg0) {

            try{

                URL url = new URL("http://deneme.com/api/add.php"); //İstekte bulunulacak sayfa

                JSONObject postDataParams = new JSONObject();
                postDataParams.put("name", "Şerif GÜNGÖR"); //POST parametresi name ve değeri Şerif GÜNGÖR
                postDataParams.put("message", message); //POST parametresi message ve değeri message değişkeni değeri

                //Log.e("params",postDataParams.toString());

                HttpURLConnection conn = (HttpURLConnection) url.openConnection();
                conn.setReadTimeout(3000 /* milliseconds */);
                conn.setConnectTimeout(3000 /* milliseconds */);
                conn.setRequestMethod("POST"); // Web Sayfasına post tipinde istekte bulun
                conn.setDoInput(true);
                conn.setDoOutput(true);

                OutputStream os = conn.getOutputStream();
                BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(os, "UTF-8"));
                writer.write(getPostDataString(postDataParams));

                writer.flush();
                writer.close();
                os.close();

                int responseCode=conn.getResponseCode();

                if (responseCode == HttpsURLConnection.HTTP_OK) {

                    BufferedReader in=new BufferedReader(new InputStreamReader(conn.getInputStream()));
                    StringBuffer sb = new StringBuffer("");
                    String line="";

                    while((line = in.readLine()) != null) {

                        sb.append(line);
                        break;
                    }

                    in.close();
                    return sb.toString();

                }
                else {
                    return new String("false : "+responseCode);
                }
            }
            catch(Exception e){
                return new String("Exception: " + e.getMessage());
            }
        }

        @Override
        protected void onPostExecute(String result) { //İşlem gerçekleştiğinde
            Toast.makeText(getApplicationContext(), result,
                    Toast.LENGTH_LONG).show();
					//Sayfadan dönen değeri toast ile bastır.

        }
    }

    public String getPostDataString(JSONObject params) throws Exception {

        StringBuilder result = new StringBuilder();
        boolean first = true;

        Iterator itr = params.keys();

        while(itr.hasNext()){

            String key= itr.next();
            Object value = params.get(key);

            if (first)
                first = false;
            else
                result.append("&");

            result.append(URLEncoder.encode(key, "UTF-8"));
            result.append("=");
            result.append(URLEncoder.encode(value.toString(), "UTF-8"));

        }
        return result.toString();
    }

İşlemi Tetikleyecek kod bloğu:

SendRequest sendRequest = new SendRequest();
sendRequest.setMessage(editText.getText().toString());
sendRequest.execute();

İlgili kelimeler;
android get post volley retrofit http httpurlconnection webservice
İlgili kategori;
Android Studio Dersleri
Makaleyi paylaşın; Google+FacebookTwitterTumblrPinterestLinkedIn

Benzer makaleler mi eklemeliyim ? Bana LinkedIn ve Github adreslerimden üzerinden ulaşabilirsiniz.