1. 使用HttpURLConnection进行post请求
public void sendPostRequest() {
    try {
        URL url = new URL("http://example.com/api");
        HttpURLConnection connection = (HttpURLConnection) url.openConnection();
        connection.setRequestMethod("POST");
        connection.setRequestProperty("Content-Type", "application/json; charset=UTF-8");
        connection.setDoOutput(true);

        JSONObject jsonObject = new JSONObject();
        jsonObject.put("key1", "value1");
        jsonObject.put("key2", "value2");

        OutputStreamWriter writer = new OutputStreamWriter(connection.getOutputStream());
        writer.write(jsonObject.toString());
        writer.flush();
        writer.close();

        int responseCode = connection.getResponseCode();
        String responseMessage = connection.getResponseMessage();
        InputStream inputStream = responseCode < HttpURLConnection.HTTP_BAD_REQUEST ? connection.getInputStream() : connection.getErrorStream();
        BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
        StringBuilder response = new StringBuilder();
        String line;
        while ((line = reader.readLine()) != null) {
            response.append(line);
        }
        reader.close();
        connection.disconnect();

        Log.d("HttpURLConnection", "Response Code: " + responseCode);
        Log.d("HttpURLConnection", "Response Message: " + responseMessage);
        Log.d("HttpURLConnection", "Response Body: " + response.toString());
    } catch (Exception e) {
        e.printStackTrace();
    }
}
  1. 使用OkHttp进行post请求
public void sendPostRequest() {
    try {
        OkHttpClient client = new OkHttpClient();

        JSONObject jsonObject = new JSONObject();
        jsonObject.put("key1", "value1");
        jsonObject.put("key2", "value2");

        RequestBody requestBody = RequestBody.create(jsonObject.toString(), MediaType.parse("application/json; charset=UTF-8"));

        Request request = new Request.Builder()
                .url("http://example.com/api")
                .post(requestBody)
                .build();

        Response response = client.newCall(request).execute();

        int responseCode = response.code();
        String responseMessage = response.message();
        String responseBody = response.body().string();

        Log.d("OkHttp", "Response Code: " + responseCode);
        Log.d("OkHttp", "Response Message: " + responseMessage);
        Log.d("OkHttp", "Response Body: " + responseBody);
    } catch (Exception e) {
        e.printStackTrace();
    }
}
  1. 使用Volley进行post请求
public void sendPostRequest() {
    try {
        RequestQueue queue = Volley.newRequestQueue(this);

        JSONObject jsonObject = new JSONObject();
        jsonObject.put("key1", "value1");
        jsonObject.put("key2", "value2");

        JsonObjectRequest request = new JsonObjectRequest(Request.Method.POST, "http://example.com/api", jsonObject,
                new Response.Listener<JSONObject>() {
                    @Override
                    public void onResponse(JSONObject response) {
                        Log.d("Volley", "Response Body: " + response.toString());
                    }
                },
                new Response.ErrorListener() {
                    @Override
                    public void onErrorResponse(VolleyError error) {
                        Log.e("Volley", "Error: " + error.toString());
                    }
                });

        queue.add(request);
    } catch (Exception e) {
        e.printStackTrace();
    }
}
  1. 使用Retrofit进行post请求
public interface ApiService {
    @POST("api")
    Call<ResponseBody> post(@Body JSONObject jsonObject);
}

public void sendPostRequest() {
    try {
        Retrofit retrofit = new Retrofit.Builder()
                .baseUrl("http://example.com/")
                .addConverterFactory(ScalarsConverterFactory.create())
                .build();

        ApiService apiService = retrofit.create(ApiService.class);

        JSONObject jsonObject = new JSONObject();
        jsonObject.put("key1", "value1");
        jsonObject.put("key2", "value2");

        Call<ResponseBody> call = apiService.post(jsonObject);
        Response<ResponseBody> response = call.execute();

        int responseCode = response.code();
        String responseMessage = response.message();
        String responseBody = response.body().string();

        Log.d("Retrofit", "Response Code: " + responseCode);
        Log.d("Retrofit", "Response Message: " + responseMessage);
        Log.d("Retrofit", "Response Body: " + responseBody);
    } catch (Exception e) {
        e.printStackTrace();
    }
}
  1. 使用AsyncTask进行post请求
public class PostAsyncTask extends AsyncTask<Void, Void, String> {
    private String url;
    private JSONObject jsonObject;

    public PostAsyncTask(String url, JSONObject jsonObject) {
        this.url = url;
        this.jsonObject = jsonObject;
    }

    @Override
    protected String doInBackground(Void... voids) {
        try {
            URL url = new URL(this.url);
            HttpURLConnection connection = (HttpURLConnection) url.openConnection();
            connection.setRequestMethod("POST");
            connection.setRequestProperty("Content-Type", "application/json; charset=UTF-8");
            connection.setDoOutput(true);

            OutputStreamWriter writer = new OutputStreamWriter(connection.getOutputStream());
            writer.write(this.jsonObject.toString());
            writer.flush();
            writer.close();

            int responseCode = connection.getResponseCode();
            InputStream inputStream = responseCode < HttpURLConnection.HTTP_BAD_REQUEST ? connection.getInputStream() : connection.getErrorStream();
            BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
            StringBuilder response = new StringBuilder();
            String line;
            while ((line = reader.readLine()) != null) {
                response.append(line);
            }
            reader.close();
            connection.disconnect();

            return response.toString();
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }

    @Override
    protected void onPostExecute(String s) {
        super.onPostExecute(s);
        Log.d("AsyncTask", "Response Body: " + s);
    }
}

public void sendPostRequest() {
    try {
        JSONObject jsonObject = new JSONObject();
        jsonObject.put("key1", "value1");
        jsonObject.put("key2", "value2");

        new PostAsyncTask("http://example.com/api", jsonObject).execute();
    } catch (Exception e) {
        e.printStackTrace();
    }
}
用java在Androidstudio实现一个post请求其中包括如何创建字典等并且这输出全部的响应信息要求要用5种方式

原文地址: https://www.cveoy.top/t/topic/bwym 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录