Android怎么样传输参数给一个url接口 参数是json格式

Android 码拜 9年前 (2016-05-03) 1855次浏览
改进一个直播类的app,之前的全部信息都是在腾讯云服务器那边,现在要传一段送礼数据给本人的服务器,具体如下
扣款接口:
点击送礼按钮时,先调用接口,扣款成功,再提交消息到腾讯实现群发。
接口url:http://txdemo.guaziwangluo.com/index.php?svc=present&cmd=give_present
参数:
sig:用户的签名,腾讯服务器返回
user:用户登录的账号
gift_id:礼物的编号
参数用json格式提交
解决方案

20

不知道你用的什么框架,本人之前用volloy 传过 json参数, 里面有个jsonObjectrequest 可以传递json参数。

   final Map<String, Object> map = new HashMap<String, Object>();
        map.put("Key", MyAppclition.hotelkey);
        map.put("Province",citys);
        final JSONObject params= (JSONObject) jsonEnclose(map); //把json参数封装起来

其实传递的就是一个json字符串

20

    JsonObjectRequest objRequest = new
                JsonObjectRequest
                ("http://api2.juheapi.com/static/city",
                        params,
                        new Response.Listener<JSONObject>() {
                            @Override
                            public void onResponse(JSONObject obj) {
                               
                            }
                        }, new Response.ErrorListener() {
                    @Override
                    public void onErrorResponse(VolleyError error) {
                        error.getMessage();
                    }
                });

这个是请求

60

 public static Object jsonEnclose(Object obj) {
        try {
            if (obj instanceof Map) {   //假如是Map则转换为JsonObject
                Map<String, Object> map = (Map<String, Object>)obj;
                Iterator<Map.Entry<String, Object>> iterator = map.entrySet().iterator();
                JSONStringer jsonStringer = new JSONStringer().object();
                while (iterator.hasNext()) {
                    Map.Entry<String, Object> entry = iterator.next();
                    jsonStringer.key(entry.getKey()).value(jsonEnclose(entry.getValue()));
                }
                JSONObject jsonObject = new JSONObject(new JSONTokener(jsonStringer.endObject().toString()));
                return jsonObject;
            } else if (obj instanceof List) {  //假如是List则转换为JsonArray
                List<Object> list = (List<Object>)obj;
                JSONStringer jsonStringer = new JSONStringer().array();
                for (int i = 0; i < list.size(); i++) {
                    jsonStringer.value(jsonEnclose(list.get(i)));
                }
                JSONArray jsonArray = new JSONArray(new JSONTokener(jsonStringer.endArray().toString()));
                return jsonArray;
            } else {
                return obj;
            }
        } catch (Exception e) {
            // TODO: handle exception
            Log.e("jsonUtil--Enclose", e.getMessage());
            return e.getMessage();
        }
    }

这是转换的方法


CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明Android怎么样传输参数给一个url接口 参数是json格式
喜欢 (0)
[1034331897@qq.com]
分享 (0)