You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Java Volley框架发送指定结构的JSON POST请求

Java 结合Volley框架发送指定JSON POST请求实现步骤

前置配置

首先在Android项目的模块级build.gradle依赖块中引入Volley官方依赖:

dependencies {
    implementation 'com.android.volley:volley:1.2.1'
}

同时在AndroidManifest.xml中声明网络权限:

<uses-permission android:name="android.permission.INTERNET" />

核心实现代码

你需要提交的请求体结构为{"data":["dog",45,256,256,2,5]},直接用Volley自带的JsonObjectRequest即可实现,不需要手动处理JSON格式拼接,具体代码如下:

// 1. 初始化请求队列,建议用全局ApplicationContext避免内存泄漏
RequestQueue requestQueue = Volley.newRequestQueue(getApplicationContext());
// 替换为你在Postman中调试通过的实际接口地址
String apiUrl = "你的接口请求地址";

try {
    // 2. 构造符合要求的JSON请求体
    JSONObject requestBody = new JSONObject();
    JSONArray dataArr = new JSONArray();
    dataArr.put("dog");
    dataArr.put(45);
    dataArr.put(256);
    dataArr.put(256);
    dataArr.put(2);
    dataArr.put(5);
    requestBody.put("data", dataArr);

    // 3. 构造JSON POST请求
    JsonObjectRequest jsonRequest = new JsonObjectRequest(
            Request.Method.POST,
            apiUrl,
            requestBody,
            response -> {
                // 请求成功回调,response就是服务端返回的JSON结果,在这里写你的业务处理逻辑
                Log.d("VolleySuccess", "返回结果: " + response.toString());
            },
            error -> {
                // 请求失败回调,在这里处理网络错误、超时、服务端报错等场景
                Log.e("VolleyError", "请求失败: " + error.toString());
            }
    ) {
        // 如果你的接口需要额外请求头(比如Postman里配置的Authorization、token等),重写这个方法添加即可
        @Override
        public Map<String, String> getHeaders() throws AuthFailureError {
            Map<String, String> headers = new HashMap<>();
            // 示例:headers.put("Authorization", "Bearer 你的token");
            return headers;
        }
    };

    // 4. 把请求加入队列发起调用
    requestQueue.add(jsonRequest);

} catch (JSONException e) {
    e.printStackTrace();
}

常见踩坑说明

  • Volley的JsonObjectRequest默认会自动设置Content-Type: application/json; charset=utf-8请求头,和Postman发JSON请求的头一致,不需要手动修改
  • 构造参数时严格匹配类型:JSON数组里第一个值是字符串,后续5个值是整数类型,不要给数字加引号转成字符串,否则会出现服务端参数校验不通过的问题
  • 如果是Android 9及以上版本调用HTTP明文接口,需要额外配置网络安全规则允许明文传输,正式环境建议优先使用HTTPS接口

内容的提问来源于stack exchange,提问作者G.George Glyn

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 18:21:56