改进一个直播类的app,之前的全部信息都是在腾讯云服务器那边,现在要传一段送礼数据给本人的服务器,具体如下
扣款接口:
点击送礼按钮时,先调用接口,扣款成功,再提交消息到腾讯实现群发。
接口url:http://txdemo.guaziwangluo.com/index.php?svc=present&cmd=give_present
参数:
sig:用户的签名,腾讯服务器返回
user:用户登录的账号
gift_id:礼物的编号
参数用json格式提交
扣款接口:
点击送礼按钮时,先调用接口,扣款成功,再提交消息到腾讯实现群发。
接口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(); } }
这是转换的方法