如何使用url发送参数并在android

时间:2015-04-29 12:40:21

标签: android httpresponse

我正在执行登录任务并以json格式从PHP服务器获取数据。作为回应,我收到一个包含User-ID

的“成功”标签

喜欢这个{"message":"You have been successfully login","success":"75"}

我在同一个活动中将该值视为“uid”并转到下一页。现在在下一页中,我想检查用户配置文件。为此,我必须将“uid”作为“params”传递给url并从服务器获取值。但不明白该怎么做。

在下一个活动页面中,我创建了asyncTask来执行操作。

protected String doInBackground(String... args) {
        // Building Parameters
        List<NameValuePair> params = new ArrayList<NameValuePair>();


        // getting JSON string from URL
        JSONObject json = jsonParser.makeHttpRequest(PROFILE_URL, "GET",params);

        // Check your log cat for JSON reponse
        Log.d("Profile JSON: ", json.toString());

        try {
            // profile json object
            profile = json.getJSONObject(TAG_PROFILE);
        } catch (JSONException e) {
            e.printStackTrace();
        }

        return null;
    }

现在我必须将'uid'设置为params。

5 个答案:

答案 0 :(得分:2)

使用意图传递数据,

  Intent intent = new Intent(getBaseContext(), SignoutActivity.class);
    intent.putExtra("UID", uId);
    startActivity(intent)

答案 1 :(得分:1)

使用intent,但是如果你想长时间保留你的uid,你可以使用SharedPrefferences

答案 2 :(得分:1)

方法1:

 Class A {

    String UID = "3"; 

    public static void main(String[] args){
       ClassB.setUid(3);
    }

    }

 Class B {
    public static String uid; 

    public static setUid(String id){

    uid = id; 
    }
}

方法2:

Intent intent = new Intent(getBaseContext(), SignoutActivity.class);
intent.putExtra("U_ID", uId);
startActivity(intent)

谨防静态变量,程序员通常不喜欢它们并将它们称为邪恶。

答案 3 :(得分:0)

如果您要执行的操作是将数据从一个活动转移到另一个活动,请尝试为您的意图添加额外内容。在您创建启动下一页的意图后,添加类似

的内容
intent.putExtra("uid", uid);

将uid添加为额外的。在下一页,您可以通过

检索此数据
   Intent intent = getIntent(); 
   int uid = intent.getIntExtra("uid", defaultvalue);

答案 4 :(得分:0)

使用Get请求传递参数有两种方法。

  1. http://myurl.com?variable1=value&variable2=value2
  2. 在请求中将参数作为标题传递。
  3. 由于HttpClient现已在API 22中弃用,因此您应该使用Google Volley https://developer.android.com/training/volley/simple.html

    使用排球库添加参数

    /**
     * This method is used to add the new JSON request to queue.
     * @param method - Type of request
     * @param url - url of request
     * @param params - parameters
     * @param headerParams - header parameters
     * @param successListener - success listener
     * @param errorListener - error listener
     */
    public void executeJSONRequest(int method, String url, final JSONObject params, final HashMap<String, String> headerParams,
                                   Response.Listener successListener,
                                   Response.ErrorListener errorListener) {
    
        JsonObjectRequest request = new JsonObjectRequest(method, url, params,
                successListener, errorListener) {
    
            @Override
            public Map<String, String> getHeaders() throws AuthFailureError {
                if (headerParams != null)
                    return headerParams;
                else
                    return super.getHeaders();
            }
        };
        // Add request to queue.
        addRequestToQueue(request);
    }