使用 volley 以 json 格式将数据发送到服务器

2023-12-03

您好,我正在以 json 格式将数据发布到服务器, 但它在错误响应中返回齐射服务器错误`

RequestQueue queue = Volley.newRequestQueue(this);
        JSONObject jobj=new JSONObject();
        try {
            jobj.put("id",”123”);
            jobj.put("session","new");
            JSONArray array = null;
            array = new JSONArray();
            for (int i = 0;i<3;i++){
               JSONObject jsonObject = new JSONObject();
                jsonObject.put("name","test");
                jsonObject.put("content","test");
                jsonObject.put("time"," 2016-04-07T11:44:22.407Z ");
                array.put(jsonObject);
            }
            Log.e(" array "," arrr"+array.toString());
            jobj.put("data",array);
        } catch (JSONException e) {
            e.printStackTrace();
        }
        Log.e("jsondata",jobj.toString());
JsonObjectRequest sr=  new JsonObjectRequest(post_url, jobj, new Response.Listener<JSONObject>() {
            @Override
            public void onResponse(JSONObject response) {
                            }

        }, new Response.ErrorListener() {

            @Override
            public void onErrorResponse(VolleyError error) {

            }
        }){
            @OveRequestQueue queue = Volley.newRequestQueue(this);
        JSONObject jobj=new JSONObject();
        try {
            jobj.put("id",”123”);
            jobj.put("session","new");
            JSONArray array = null;
            array = new JSONArray();
            for (int i = 0;i<3;i++){
               JSONObject jsonObject = new JSONObject();
                jsonObject.put("name","test");
                jsonObject.put("content","test");
                jsonObject.put("time"," 2016-04-07T11:44:22.407Z ");
                array.put(jsonObject);
            }
            Log.e(" array "," arrr"+array.toString());
            jobj.put("data",array);
        } catch (JSONException e) {
            e.printStackTrace();
        }
        Log.e("jsondata",jobj.toString());
JsonObjectRequest sr=  new JsonObjectRequest(post_url, jobj, new Response.Listener<JSONObject>() {
            @Override
            public void onResponse(JSONObject response) {
                            }

        }, new Response.ErrorListener() {

            @Override
            public void onErrorResponse(VolleyError error) {

            }rride
            public Map<String, String> getHeaders() throws AuthFailureError {
                Map<String,String> params = new HashMap<String, String>();
                params.put("Content-Type","application/json");
                return params;
            }
        };
        queue.add(sr);`

有一个处理请求队列的单例。

public class VolleySingleton {

    // Singleton object...
    private static VolleySingleton instance;

    final private RequestQueue requestQueue;
    private static ImageLoader imageLoader;

    //Constructor...
    private VolleySingleton(Context context) {

        requestQueue = Volley.newRequestQueue(context);

        imageLoader = new ImageLoader(requestQueue, new ImageLoader.ImageCache() {
            private final LruCache<String, Bitmap> cache = new LruCache<>(100000000);


            @Override
            public Bitmap getBitmap(String url) {
                return cache.get(url);
            }

            @Override
            public void putBitmap(String url, Bitmap bitmap) {
                cache.put(url, bitmap);
            }
        });
    }

    // Singleton method...
    public static VolleySingleton getInstance(Context context) {
        if (instance == null) {
            instance = new VolleySingleton(context);
        }
        return instance;
    }

    public RequestQueue getRequestQueue(Context context) {
        if (requestQueue != null) {
        return requestQueue;
        } else {
            getInstance(context);
            return requestQueue;
        }
    }

    private  RequestQueue getRequestQueue() {
        return requestQueue;
    }

    public static ImageLoader getImageLoader(Context context) {
        if (imageLoader != null) {
            return imageLoader;
        } else {
            getInstance(context);
            return imageLoader;
        }
    }

    public <T> void addToRequestQueue(Request<T> req) {
        req.setTag("App");
        getRequestQueue().add(req);
    }

}

然后使用以下方法您可以发送请求。

public void postVolley(final Context context, String url, JSONObject jsonObject) {

        JsonObjectRequest jsonObjReq = new JsonObjectRequest(Request.Method.POST, url, jsonObject, new Response.Listener<JSONObject>() {

            @Override
            public void onResponse(JSONObject responseJson) {
                Log.e("success", "" + responseJson.toString());
            }


        }, new Response.ErrorListener() {

            @Override
            public void onErrorResponse(VolleyError error) {
                Log.e("error", "" + error);

            }
        }) {

            /**
             * Setting the content type
             */

            @Override
            public String getBodyContentType() {
                return "application/json;charset=UTF-8";
            }
        };

        VolleySingleton.getInstance(context).addToRequestQueue(jsonObjReq);

    }

这对我来说效果很好。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 volley 以 json 格式将数据发送到服务器 的相关文章

随机推荐

  • R 如何在不知道长度的情况下创建 for 循环?

    目前在这方面site我正在抓取镜头图表信息 为了抓取信息 我需要为有多少个镜头创建一个 for 循环 我通过单击 球队统计数据 并查找投篮尝试次数来查找投篮次数 我想做适当的for loop无需找出镜头的数量 我目前正在做的事情 shotc
  • 更新第一行mysql php

    我正在尝试更新数据库中的第一行 我用Limit 1仅更新第一行但什么也没有发生 肯定有匹配的行 但数据库中没有任何变化 这是代码 foreach player fromsite as match player in game querytw
  • loadNibNamed 方法太慢 - 如何使其更快?

    我有一个滚动视图 其中包含大约 40 50 个不同类型的对象 对象的类型是根据对象位置的函数定义的 例如 如果是滚动视图中的第 5 个对象 gt 是 Object1 如果是滚动视图中的第 11 个对象 gt 则是 Object2 类型等 使
  • Python Popen 无法在 Windows PowerShell 中使用正确的编码

    我正在 Windows PowerShell 中运行 Python 脚本 该脚本应使用 Popen 运行另一个程序 然后通过管道传输该程序 实际上是 Mercurial 的输出以在我的脚本中使用 当我尝试在 PowerShell 中执行脚本
  • 在 Java 中逐行读取大型 JSON 文件的快速高效方法

    我有 1 亿条记录JSON文件 需要一种高效且最快的方法来读取数组的数组JSON文件输入java JSON文件看起来像 XYZ ABC XYZ ABC XYZ ABC XYZ ABC XYZ ABC XYZ ABC XYZ ABC XYZ
  • 有使用 pywin32 createprocessasuser 并获取输出的好例子吗?

    我需要使用 pywin32 方法以不同的用户身份创建进程 然后从生成的进程中获取标准输出 标准错误和错误代码 并在进程运行时将输入输入到进程中 问题是 我似乎找不到 createprocess 函数的一个很好的例子 这个问题变得更加复杂 因
  • 如何在seaborn中检索错误栏

    我使用以下函数在seaborn中绘制了条形图 ax sns barplot x Year y Value data df 现在我想根据以下规则为每个条形着色 percentages for bar yerr in zip bars yerr
  • 使用 Kryo 序列化任意 Java 对象(出现 IllegalAccessError)

    动机 为了帮助远程调试 Java 能够请求远程服务器将任意对象发送到我的本地计算机进行检查非常有用 然而 这意味着远程服务器必须能够序列化运行时事先未知的任意java对象 于是我四处打听 偶然发现Kryo序列化库 From Kryo 的文档
  • 在固定 div 内旋转文本

    我正在尝试在页面左侧设置一个固定 div 距离左侧 24px 并从页面顶部延伸到底部 该 div 内将包含导航和标题 我试图将标题旋转 90 度并居中定位到 div 的底部 很难弄清楚这一点 查了很多地方都没有看到类似的例子 我已经用当前的
  • 将 HTML 字符串转换为 DOM 元素?

    有没有办法将 HTML 转换为 div a href a span span div 或者任何其他 HTML 字符串到 DOM 元素中 这样我就可以使用appendChild 我知道我可以执行 innerHTML 和 innerText 但
  • write_csv read_csv 在第 1000 行后使用科学记数法

    使用 write csv 将混合有小整数条目 值小于 1000 和 大 整数条目 值 1000 或以上 的数据框写入 csv 文件 会混合科学和非科学条目 如果前 1000 行是小值 但此后有一个大值 则 read csv 似乎会与这种混合
  • Cassandra-Windows 10

    我已经安装了 apache cassandra 3 11 11 和 DATASTAX DDC 但它们无法在 Windows 10 上运行 它在 cmd 中给出错误 如图所示 我尝试在 powershell 上编写 cassandra bat
  • ASP.NET MVC3如何使用间隔一小时的计时器执行控制器的操作方法

    Hello 我正在使用 asp net mvc3 我有一个特殊的控制器 它有一种特殊的操作方法 我需要使用计时器以一小时为间隔执行此操作方法 任何最好 最有效的想法 thanks 我能够使用 VBScript 和 Windows Sched
  • 如何从 hapi.js 路由处理程序外部进行回复

    我有一个hapi js我想推迟响应的路线 我尝试过存储reply函数并稍后调用它 或者将其包装在 Promise 中 但 hapi 总是立即响应 500 内部服务器错误响应 存储回复以供稍后使用 var pendingReplies ser
  • 使用 == 运算符将 char 与 0x80 进行比较总是结果为 false?

    char byte 0x80 if byte 0x80 cout lt lt This message never gets printed 十六进制值0x80二进制等价于1000 0000 这显然适合一个字节 但是 编译器会警告我有关条件
  • 控制插入符号 R 包中交叉验证的采样

    我有以下问题 在来自 N 个受试者的数据集中 每个受试者有几个样本 我想在数据集上训练模型 但我想确保在每次重采样中 训练集中没有受试者的重复 或者 我会阻止按主题进行交叉验证 那可能吗 如果没有插入符号包 我会做类似的事情 模拟代码 su
  • boost asio Streambuf 调用消耗后不释放内存?

    boost asio streambuf b void handler const boost system error code e std size t size if e std stringstream sstr std strin
  • 如何在不使用服务的情况下在子组件和父组件之间传递反应式表单数据

    当我们单击父级按钮时 我们希望使用来自父级的子级反应式表单数据 目前我们正在使用 viewchild 来获取子组件引用 我们正在获取所有静态数据 但没有获取表单填充的数据 parent component ts ViewChild Deta
  • Git 跟踪、未跟踪、暂存、索引的含义?

    有人可以澄清这些术语的含义吗 跟踪的文件是否是在某个时刻添加到舞台中的任何文件 索引 和 阶段 一样吗 是否跟踪所有暂存文件 但反之则不一定成立 即 曾经暂存并提交的文件 但不是要提交的当前阶段的一部分 我如何知道哪些文件被跟踪 我如何知道
  • 使用 volley 以 json 格式将数据发送到服务器

    您好 我正在以 json 格式将数据发布到服务器 但它在错误响应中返回齐射服务器错误 RequestQueue queue Volley newRequestQueue this JSONObject jobj new JSONObject