文档章节

volley用法之 以post方式发送 json 参数

我辈年轻1
 我辈年轻1
发布于 2016/11/03 19:22
字数 485
阅读 2
收藏 0

需求是这样

我们需要发送一个post请求向服务器要参数。要求是发送的post参数也要是json格式。

简单一点的是这样的:

如果要发送的是这样简单的json格式,我们可以简单的使用map来实现:

RequestQueue requestQueue = Volley.newRequestQueue(getApplicationContext());

        Map<String, String> merchant = new HashMap<String, String>();
        merchant.put("id", "id");
        merchant.put("ncode", "ncode");
        merchant.put("tradingName", "tradingName");

        Log.d("map", map.toString());
        JSONObject jsonObject = new JSONObject(merchant);

        Log.e(TAG, "getdata: " + jsonObject.toString());

        JsonRequest<JSONObject> jsonRequest = new JsonObjectRequest(Request.Method.POST, "", jsonObject,
                new Response.Listener<JSONObject>() {
                    @Override
                    public void onResponse(JSONObject response) {
                        Log.d(TAG, "response -> " + response.toString());
                    }
                }, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {
                Log.e(TAG, error.getMessage(), error);
            }
        }) {

            @Override
            public Map<String, String> getHeaders() {
                HashMap<String, String> headers = new HashMap<String, String>();
                headers.put("Accept", "application/json");
                headers.put("Content-Type", "application/json; charset=UTF-8");

                return headers;
            }
        };
        requestQueue.add(jsonRequest);


    }
View Code

这里主要用到的就是

JSONObject jsonObject = new JSONObject(map);

这个方法,可以很方便的将map转成json数据。

如果需要传的是个有嵌套的json数据又该怎么办呢?

例如:

相比之前的数据,我们看到 merchant 也是一个json Object

这种嵌套的格式该怎么写呢?也很简单这里是嵌套,我们也写一个map的嵌套

就好啦!

RequestQueue requestQueue = Volley.newRequestQueue(getApplicationContext());

        Map<String, String> merchant = new HashMap<String, String>();
        merchant.put("id", "id");
        merchant.put("ncode", "ncode");
        merchant.put("tradingName", "tradingName");

        Map<String, Object> map = new HashMap<>();
        map.put("billType", "ADHOC");
        map.put("collectionCode", "string");
        map.put("otherRefNo", "string");
        map.put("contactMode", "SMS");
        map.put("merchant", merchant);
        map.put("currency", "SGD");
        map.put("amount", " 0.00");
        
        Log.d("map", map.toString());
        JSONObject jsonObject = new JSONObject(map);
//后面一样的,省略。
View Code

这样再使用 JSONObject 的方法就可以生成我们想要的json格式啦!很简单是吧。

 

下面来说下JsonRequest的参数:

参数一:

  请求方式 (这里是post)

参数二:

  请求的URL

参数三:

  请求的参数(如果是get请求方式则为空 null)

参数四:

  服务器相应的回调(可以根据服务器的相应码区分不同的情况)

参数五:

  服务器未响应的回调(可以做一些简单的提示)

 

 

谢谢阅读!

 

本文转载自:http://www.cnblogs.com/wobeinianqing/p/5939928.html

我辈年轻1
粉丝 1
博文 85
码字总数 0
作品 0
南京
程序员
私信 提问
Android Volley学习

开发android应用很多时候都要涉及网络操作,Android SDK中提供了HttpClient 和 HttpUrlConnection两种方式用来处理网络操作,但当应用比较复杂的时候需要我们编写大量的代码处理很多东西:图...

JeremyDai
2016/05/05
86
0
【Android】android Volley完全解析(一)

前言 Volley是一个由Google官方推出的网络通信库,它使得Android进行网络请求时更加方便、快速、健壮,同时对网络图片加载也提供了良好的支持。 不过HttpURLConnection和HttpClient的用法还是...

定陶黄公子
2016/12/13
300
0
Android Volley完全解析(一),初识Volley的基本用法

转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/17482095 1. Volley简介 我们平时在开发Android应用的时候不可避免地都需要用到网络技术,而多数情况下应用程序都会使用...

mingxun
2014/04/18
207
0
Android Volley框架的几种post提交请求方式

首先简单描述一下Google的Android开发团队在2013年推出的一个网络通信框架Volley.它的设计目标是进行数据量不大,但通信频繁的网络操作,而对于大数据量的网络操作,比如下载文件等,Volley的...

gaolu
2014/08/08
171
1
继续封装个 Volley 组件

前面已经封装了很多常用、基础的组件了:base-module, 包括了: crash 处理 常用工具类 apk 升级处理 log 组件 logcat 采集 ftp 文件上传 blur 高斯模糊 fresco 图片处理 等等 那么,今天继...

请叫我大苏
2018/10/23
0
0

没有更多内容

加载失败,请刷新页面

加载更多

一起来学Java8(四)——复合Lambda

在一起来学Java8(二)——Lambda表达式中我们学习了Lambda表达式的基本用法,现在来了解下复合Lambda。 Lambda表达式的的书写离不开函数式接口,复合Lambda的意思是在使用Lambda表达式实现函...

猿敲月下码
34分钟前
9
0
debian10使用putty配置交换机console口

前言:Linux的推广普及,需要配合解决实际应用方能有成效! 最近强迫自己用linux进行实际工作,过程很痛苦,还好通过网络一一解决,感谢各位无私网友博客的帮助! 系统:debian10 桌面:xfc...

W_Lu
今天
10
0
aelf Enterprise 0.8.0 beta有奖公测,“Bug奖金计划”重磅开启

2019年9月30日,aelf Enterprise 0.8.0 beta版正式发布。aelf Enterprise 0.8.0 beta是一个完备的区块链系统, 包含完备的区块链系统、开发套件、开发文档、以及配套的基础应用和基础服务。 ...

AELF开发者社区
今天
10
0
oracle 初始化数据库脚本

create user lpf identified by 123456; create tablespace lpf_ts_cms datafile '/opt/app/oracle/product/11.2.0/lpf.dbf' size 200M; alter user lpf default tablespace lpf_ts_cms; sel......

internetafei
今天
8
0
深入了解Redis底层数据结构

说明 说到Redis的数据结构,我们大概会很快想到Redis的5种常见数据结构:字符串(String)、列表(List)、散列(Hash)、集合(Set)、有序集合(Sorted Set),以及他们的特点和运用场景。不过它们是...

TurboSanil
今天
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部