我们如何在android中处理HttpResponse的结果?

时间:2011-09-07 06:47:57

标签: android httpresponse

我正在开发android。我正在使用HttpPost发送用户名和密码并获取用户ID。

这是我的操作代码:

HttpClient hc = new DefaultHttpClient();

HttpPost post = new HttpPost("http://192.168.1.214/sample/dologin.php id="+strUID+ "&password="+strPass);

HttpResponse rp = hc.execute(post);

if (rp.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
    String userID = EntityUtils.toString(rp.getEntity());
    Log.v("Login response", "" + userID);
}

这是我在DDMS中的输出

Login response(686): ([{"id":"5"}]);

但结果我需要5个。所以我可以在下一次操作中使用这个结果。请告诉我如何从字符串中提取5([{“id”:“5”}]);

提前谢谢。

3 个答案:

答案 0 :(得分:2)

public void postData(String strUID,String strPass) {
    // Create a new HttpClient and Post Header
    HttpClient httpclient = new DefaultHttpClient();
    HttpPost httppost = new HttpPost("http://192.168.1.214/sample/dologin.php");

    try {
        // Add your data
        List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
        nameValuePairs.add(new BasicNameValuePair("id",strUID ));
        nameValuePairs.add(new BasicNameValuePair("password",strPass ));
        httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));

        // Execute HTTP Post Request
        ResponseHandler<String> responseHandler=new BasicResponseHandler();
        String responseBody = httpclient.execute(httppost, responseHandler);
        JSONObject response=new JSONObject(responseBody);

        response.get('id');
    } catch (ClientProtocolException e) {
        // TODO Auto-generated catch block
    } catch (IOException e) {
        // TODO Auto-generated catch block
    }
} 

答案 1 :(得分:1)

我似乎将您的答案打包到JSONObject中。 要处理此响应,只需使用org.json包并将您的答案解析为json。 提取答案的最简单方法是:

JSONObject myJson = new JSONObject(userID);
String myID = myJson.get("id");
// or myJson.getString("id");

我也不会使用POST方法而是使用GET方法,因为你没有通过GET调用ressource。

答案 2 :(得分:1)

您可以在下面使用JSON是简单的代码..

StringBuffer sb = new StringBuffer(userID);
String s = sb.substring(sb.indexOf("["),sb.lastIndexOf("]")+1);
JSONArray ja = new JSONArray(s);
JSONObject jo = new JSONObject();
jo = (ja.getJSONObject(0));
String id = jo.getString("id");

现在你可以使用id变量..