Android如何传输参数给一个url接口 参数是json格式

qq_22485879 2016-07-11 05:04:52
改进一个直播类的app,之前的所有信息都是在腾讯云服务器那边,现在要传一段送礼数据给自己的服务器,具体如下
扣款接口:
点击送礼按钮时,先调用接口,扣款成功,再提交消息到腾讯实现群发。
接口url:http://txdemo.guaziwangluo.com/index.php?svc=present&cmd=give_present

参数:
sig:用户的签名,腾讯服务器返回
user:用户登录的账号
gift_id:礼物的编号

参数用json格式提交
...全文
871 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
dusmit 2016-07-12
  • 打赏
  • 举报
回复
 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();
        }
    }
这是转换的方法
qq_22485879 2016-07-12
  • 打赏
  • 举报
回复
如何数据是变量的话给怎样封装成json数据
dusmit 2016-07-11
  • 打赏
  • 举报
回复
引用 4 楼 qq_22485879 的回复:
MVC框架的,应该怎么写
我上面只是提供方法去请求数据,
qq_22485879 2016-07-11
  • 打赏
  • 举报
回复
MVC框架的,应该怎么写
dusmit 2016-07-11
  • 打赏
  • 举报
回复

    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();
                    }

                });
这个是请求
zhang106209 2016-07-11
  • 打赏
  • 举报
回复
上面说 很清楚 将map出上去就行了
dusmit 2016-07-11
  • 打赏
  • 举报
回复
不知道你用的什么框架,我之前用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字符串

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧