如果有人可以解释这些代码行的含义/含义。将非常感激。感谢
JSONObject req = new JSONObject();
boolean flag = false;
try {
req.put("name", p_name.getText().toString());
String res = HttpClient.SendHttpPost(Constants.NAME, req.toString());
if(res != null){
JSONObject json = new JSONObject(res);
if(json.getBoolean("status")){
flag = true;
String id = json.getString("userid");
app.getUserinfo().SetUserInfo(id);
}
}
答案 0 :(得分:3)
简而言之
此代码将名称发送到远程API,该API返回用户ID和成功状态(可能仅在远程服务找到该名称时)。然后将用户标识存储在我们的本地应用程序中。
逐行说明
首先,我们创建一个名为req
的JSON对象。
JSONObject req = new JSONObject();
然后我们将p_name
中存储的字符串保存到name
的{{1}}字段
req
然后我们将HTTP POST一个JSON对象的字符串序列化到我们的服务器。 boolean flag = false;
try {
req.put("name", p_name.getText().toString());
会将我们收到的回复存储为字符串。
res
POST返回后,我们检查响应是否为空。
String res = HttpClient.SendHttpPost(Constants.NAME, req.toString());
如果它不为null,我们将响应转换为JSON对象(可能是此服务器返回有效的JSON。
if(res != null){
我们检查响应对象中的字段JSONObject json = new JSONObject(res);
是否为真。 (如果查看原始服务器输出,响应将看起来像status
。)
{"status":"true","userid":"a-user-id"}
如果是这样,我们将flag设置为true,从响应对象获取字段if(json.getBoolean("status")){
,并将应用程序的用户ID设置为从服务器返回的ID。
userid
答案 1 :(得分:1)
//creating a json object
JSONObject req = new JSONObject();
boolean flag = false;
try {
//save the string from p_name to the json
req.put("name", p_name.getText().toString());
//send the json string to the server
String res = HttpClient.SendHttpPost(Constants.NAME, req.toString());
if(res != null){
//if you get the response correctly, convert the response to a json object (or we call it "parse")
JSONObject json = new JSONObject(res);
//if the "status" in the json represents true, make "flag" true and then set the user id
if(json.getBoolean("status")){
flag = true;
String id = json.getString("userid");
app.getUserinfo().SetUserInfo(id);
}
}