Sending json object via http post method in android

前端 未结 2 1872
粉色の甜心
粉色の甜心 2020-12-18 16:19

its NOT DUPLICATE.Link that has been provided is an OLD one.\"http client\" has been removed in api23

I want to send json object:

<
相关标签:
2条回答
  • 2020-12-18 16:34

    Define a class AsyncT and call it in onCreate method using:

    AsyncT asyncT = new AsyncT();
    asyncT.execute();
    

    Class definition:

    class AsyncT extends AsyncTask<Void,Void,Void>{
    
            @Override
            protected Void doInBackground(Void... params) {
    
                try {
                    URL url = new URL(""); //Enter URL here
                    HttpURLConnection httpURLConnection = (HttpURLConnection)url.openConnection();
                    httpURLConnection.setDoOutput(true);
                    httpURLConnection.setRequestMethod("POST"); // here you are telling that it is a POST request, which can be changed into "PUT", "GET", "DELETE" etc.
                    httpURLConnection.setRequestProperty("Content-Type", "application/json"); // here you are setting the `Content-Type` for the data you are sending which is `application/json`
                    httpURLConnection.connect();
    
                    JSONObject jsonObject = new JSONObject();
                    jsonObject.put("para_1", "arg_1");
    
                    DataOutputStream wr = new DataOutputStream(httpURLConnection.getOutputStream());
                    wr.writeBytes(jsonObject.toString());
                    wr.flush();
                    wr.close();
    
                } catch (MalformedURLException e) {
                    e.printStackTrace();
                } catch (IOException e) {
                    e.printStackTrace();
                } catch (JSONException e) {
                    e.printStackTrace();
                }
    
                return null;
            }
    
    
        }
    
    0 讨论(0)
  • 2020-12-18 16:40

    @Sandip Subedi This is how you get response from the httpURLConnection

    class AsyncT extends AsyncTask<Void,Void,Void>{
    
        @Override
        protected Void doInBackground(Void... params) {
    
            try {
                URL url = new URL(""); //Enter URL here
                HttpURLConnection httpURLConnection = (HttpURLConnection)url.openConnection();
                httpURLConnection.setDoOutput(true);
                httpURLConnection.setRequestMethod("POST"); // here you are telling that it is a POST request, which can be changed into "PUT", "GET", "DELETE" etc.
                httpURLConnection.setRequestProperty("Content-Type", "application/json"); // here you are setting the `Content-Type` for the data you are sending which is `application/json`
                httpURLConnection.connect();
    
                JSONObject jsonObject = new JSONObject();
                jsonObject.put("para_1", "arg_1");
    
                DataOutputStream wr = new DataOutputStream(httpURLConnection.getOutputStream());
                wr.writeBytes(jsonObject.toString());
                wr.flush();
                wr.close();
    
                InputStream response = httpURLConnection.getInputStream();
                BufferedReader reader = new BufferedReader(newInputStreamReader(response);
                StringBuilder sb = new StringBuilder();
                String line = null;
                try {
                    while ((line = reader.readLine()) != null) {
                        sb.append(line + "\n");
                    }
                } catch (IOException e) {
                    e.printStackTrace();
                } finally {
                    try {
                       is.close();
                    } catch (IOException e) {
                       e.printStackTrace();
                    }
                }
    
            } catch (MalformedURLException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            } catch (JSONException e) {
                e.printStackTrace();
            }
    
            return null;
        }
    
    
    }
    
    0 讨论(0)
提交回复
热议问题