改进一个直播类的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();
}
}
这是转换的方法