Search code examples
androidhttp-post

How to send http post request from Android?


I'm new to android and now I'm so tired of searching the best tutorial about android HTTP requests.

I'm trying to send these parameters to phpServer,

  • Name = "some name"

  • email = "some email"

Can we do this in MainActivity.java file? is this need any jar(library) file? any suggestions are welcome.

I tried this,

@Override
public void onClick(View view) {
    if(view == btnSubscribe){
        HttpURLConnection client = null;
        try {
            URL url = new URL("http://www/somewebsite.com/API/SUBSCRIBE");
            client = (HttpURLConnection) url.openConnection();
            client.setRequestMethod("POST");
            client.setRequestProperty("name","test one");
            client.setRequestProperty("email","text@gmail.com");
            client.setDoOutput(true);

            OutputStream outputPost = new BufferedOutputStream(client.getOutputStream());
            outputPost.flush();
            outputPost.close();
            client.setChunkedStreamingMode(0);

        } catch(MalformedURLException error) {
            showError("Handles an incorrectly entered UR");
        }
        catch(SocketTimeoutException error) {
            showError("Handles URL access timeout");
        }
        catch (IOException error) {
            showError("Handles input and output errors");
        }finally {
            if(client != null)
            client.disconnect();
        }
    }
}

Solution

  • I am using this code and working as well. Try this code.

    public static String httpPostRequest(Context context, String url, String email) {
            String response = "";
            BufferedReader reader = null;
            HttpURLConnection conn = null;
            try {
                LogUtils.d("RequestManager", url + " ");
                LogUtils.e("data::", " " + data);
                URL urlObj = new URL(url);
    
                conn = (HttpURLConnection) urlObj.openConnection();
                conn.setRequestMethod("POST");
                conn.setDoOutput(true);
                OutputStreamWriter wr = new OutputStreamWriter(conn.getOutputStream());
    
                data += "&" + URLEncoder.encode("Email", "UTF-8") + "="
                        + URLEncoder.encode(email, "UTF-8");
    
    
                wr.write(data);
                wr.flush();
    
                LogUtils.d("post response code", conn.getResponseCode() + " ");
    
                int responseCode = conn.getResponseCode();
    
    
    
                reader = new BufferedReader(new InputStreamReader(conn.getInputStream()));
                StringBuilder sb = new StringBuilder();
                String line = null;
    
                while ((line = reader.readLine()) != null) {
                    sb.append(line + "\n");
                }
    
                response = sb.toString();
            } catch (Exception e) {
                e.printStackTrace();
                LogUtils.d("Error", "error");
            } finally {
                try {
                    reader.close();
                    if (conn != null) {
                        conn.disconnect();
                    }
                } catch (Exception ex) {
                }
            }
            LogUtils.d("RESPONSE POST", response);
            return response;
        }