作者:万象新动HR | 来源:互联网 | 2024-10-28 10:44
本文探讨了如何使用Xutils3框架实现JSON数据在服务器端的传输与接收解析。通过构建JSON对象并添加所需参数,如`person.put("pc",2.0)`,详细介绍了从客户端发送请求到服务器接收并解析JSON数据的完整流程。此外,还提供了优化建议,以提高数据传输的效率和安全性。
//生成json
JSONObject kker= new JSONObject();//服务器需要传参的json对象 person.put("pc", "2.0");//根据实际需求添加相应键值对 person.put("md", "post");
JSONObject address = new JSONObject();
JSONArray jsOnArray=new JSONArray();
jsonArray.put("id").put("name");
address.put("output", jsonArray);
JSONObject kker2=new JSONObject();
kker2.put("host","");
address.put(
"filter",person2);person.put(
"params",address);person.put(
"auth", "3
223");
person.put("id", 1);
Log.i("ooooo", person.toString());
//设置xutils请求
RequestParams params = new RequestParams(URL);添加请求地址
params.addHeader("Content-Type", "application/json-rpc"); 设置请求头部
params.setBodyContent(kker.toString());//添加json内容到请求参数里 // params.addParameter("as", "g");//添加参数 params.setAsJsonContent(true);//设置为json内容(这句个本人感觉不加也没有影响) x.http().post(params, new Callback.CacheCallback() {
@Override
public void onSuccess(String result) {
//得到返回的数据result
Log.i("ooooo",result);
try {
JSONObject object=new JSONObject(result);
JSONArray array=object.optJSONArray("result");
for(int i=0;i// map=new HashMap<>(); JSONObject objects=array.optJSONObject(i);
String hostid=objects.optString("id");
String name=objects.optString("name");
// map.put(hostid,name); data_list.add(name
);
}
} catch (JSONException e) {
e.printStackTrace();
}
}
@Override
public void onError(Throwable ex, boolean isOnCallback) {
}
@Override
public void onCancelled(CancelledException cex) {
}
@Override
public void onFinished() {
}
@Override
public boolean onCache(String result) {
return false;
}
});