If you want to use the HttpUrlConnection, you can refer to the following two samples. Hope this helps!
private class LoginRequest extends AsyncTask<Void, Void, String> { @Override protected String doInBackground(Void... voids) { String address = "http://server/login"; HttpURLConnection urlConnection; String requestBody; Uri.Builder builder = new Uri.Builder(); Map<String, String> params = new HashMap<>(); params.put("username", "bnk"); params.put("password", "bnk123"); // encode parameters Iterator entries = params.entrySet().iterator(); while (entries.hasNext()) { Map.Entry entry = (Map.Entry) entries.next(); builder.appendQueryParameter(entry.getKey().toString(), entry.getValue().toString()); entries.remove(); } requestBody = builder.build().getEncodedQuery(); try { URL url = new URL(address); urlConnection = (HttpURLConnection) url.openConnection(); urlConnection.setDoOutput(true); urlConnection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded"); OutputStream outputStream = new BufferedOutputStream(urlConnection.getOutputStream()); BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(outputStream, "utf-8")); writer.write(requestBody); writer.flush(); writer.close(); outputStream.close(); JSONObject jsonObject = new JSONObject(); InputStream inputStream; // get stream if (urlConnection.getResponseCode() < HttpURLConnection.HTTP_BAD_REQUEST) { inputStream = urlConnection.getInputStream(); } else { inputStream = urlConnection.getErrorStream(); } // parse stream BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream)); String temp, response = ""; while ((temp = bufferedReader.readLine()) != null) { response += temp; } // put into JSONObject jsonObject.put("Content", response); jsonObject.put("Message", urlConnection.getResponseMessage()); jsonObject.put("Length", urlConnection.getContentLength()); jsonObject.put("Type", urlConnection.getContentType()); return jsonObject.toString(); } catch (IOException | JSONException e) { return e.toString(); } } @Override protected void onPostExecute(String result) { super.onPostExecute(result); Log.i(LOG_TAG, "POST\n" + result); } } private class JsonPostRequest extends AsyncTask<Void, Void, String> { @Override protected String doInBackground(Void... voids) { try { String address = "http://server/postvalue"; JSONObject json = new JSONObject(); json.put("Title", "Dummy Title"); json.put("Author", "Dummy Author"); String requestBody = json.toString(); URL url = new URL(address); HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection(); urlConnection.setDoOutput(true); urlConnection.setRequestProperty("Content-Type", "application/json"); OutputStream outputStream = new BufferedOutputStream(urlConnection.getOutputStream()); BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(outputStream, "utf-8")); writer.write(requestBody); writer.flush(); writer.close(); outputStream.close(); InputStream inputStream; // get stream if (urlConnection.getResponseCode() < HttpURLConnection.HTTP_BAD_REQUEST) { inputStream = urlConnection.getInputStream(); } else { inputStream = urlConnection.getErrorStream(); } // parse stream BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream)); String temp, response = ""; while ((temp = bufferedReader.readLine()) != null) { response += temp; } // put into JSONObject JSONObject jsonObject = new JSONObject(); jsonObject.put("Content", response); jsonObject.put("Message", urlConnection.getResponseMessage()); jsonObject.put("Length", urlConnection.getContentLength()); jsonObject.put("Type", urlConnection.getContentType()); return jsonObject.toString(); } catch (IOException | JSONException e) { return e.toString(); } } @Override protected void onPostExecute(String result) { super.onPostExecute(result); Log.i(LOG_TAG, "POST RESPONSE: " + result); mTextView.setText(result); } }
source share