这段代码做了什么,我需要了解

时间:2014-11-01 15:19:01

标签: java android

如果有人可以解释这些代码行的含义/含义。将非常感激。感谢

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

2 个答案:

答案 0 :(得分:3)

简而言之

此代码将名称发送到远程API,该API返回用户ID和成功状态(可能仅在远程服务找到该名称时)。然后将用户标识存储在我们的本地应用程序中。


逐行说明

  1. 首先,我们创建一个名为req的JSON对象。

    JSONObject req = new JSONObject();
    
  2. 然后我们将p_name中存储的字符串保存到name的{​​{1}}字段

    req
  3. 然后我们将HTTP POST一个JSON对象的字符串序列化到我们的服务器。 boolean flag = false; try { req.put("name", p_name.getText().toString()); 会将我们收到的回复存储为字符串。

    res
  4. POST返回后,我们检查响应是否为空。

    String res = HttpClient.SendHttpPost(Constants.NAME, req.toString());
    
  5. 如果它不为null,我们将响应转换为JSON对象(可能是此服务器返回有效的JSON。

    if(res != null){
    
  6. 我们检查响应对象中的字段JSONObject json = new JSONObject(res); 是否为真。 (如果查看原始服务器输出,响应将看起来像status。)

    {"status":"true","userid":"a-user-id"}
  7. 如果是这样,我们将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);          
        }
    }