如何在android中存储HTTP url的响应

时间:2014-11-30 06:08:17

标签: android html-parsing httpresponse

我正在构建一个Android应用程序,用户输入名称,电子邮件ID这是对URL的解析,所有用户数据都存储在那里。

现在,当用户发送此信息时,会在服务器上的该时间生成一个ID,并将该唯一ID重新发送给我作为URL响应。

如何获得此响应并存储它。所以我可以使用它以供将来使用。

以下是我将此值解析为该网址的代码 -

private class DownloadJSON extends AsyncTask<String, String, String> {

    @Override
    protected void onPreExecute() {
        super.onPreExecute();
        // Create a progressdialog

    }

    @Override
    protected String doInBackground(String... params) {

        // Create an array
        //public String postData() {
        HttpClient httpclient = new DefaultHttpClient();
        HttpPost httppost = new HttpPost("http://URL/api/user");

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

            // Execute HTTP Post Request
            HttpResponse response = httpclient.execute(httppost);
            HttpEntity entity = response.getEntity();

            InputStream parse = entity.getContent();

            return getStringFromInputStream(parse);

          } catch (ClientProtocolException e) {
            // TODO Auto-generated catch block
           } catch (IOException e) {
            // TODO Auto-generated catch block
          }

            return "No Result !";
        } 

         //convert InputStream to String
        private  String getStringFromInputStream(InputStream is) {

            BufferedReader br = null;
            StringBuilder sb = new StringBuilder();

            String line;
            try {

                br = new BufferedReader(new InputStreamReader(is));
                while ((line = br.readLine()) != null) {
                    sb.append(line);
                }

            } catch (IOException e) {
                e.printStackTrace();
            } finally {
                if (br != null) {
                    try {
                        br.close();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
            }

            return sb.toString();
          }


    @Override
    protected void onPostExecute(String args) {

    }
}

我是新来的android请帮帮我!!

1 个答案:

答案 0 :(得分:2)

最好使用SharedPreferences使用众所周知的密钥保存所有内容。

首先在共享偏好中保存您的userName,EmailId,例如

//Intialize it first
SharedPreferences sharedpreferences = getSharedPreferences("SOME_KEY", Context.MODE_PRIVATE);

//Use the Editor to put value inside this
Editor editor = sharedpreferences.edit();
//save both the name and email first 
editor.putString("NAME", name);
editor.putString("EMAILID", email);
//finally commit it
editor.commit();

现在做你的服务器部分......

@Override 
protected String doInBackground(String... params) {

    // Create an array 
    //public String postData() { 
    HttpClient httpclient = new DefaultHttpClient();
    HttpPost httppost = new HttpPost("http://URL/api/user");

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

        // Execute HTTP Post Request 
        HttpResponse response = httpclient.execute(httppost);
        String responseId = response.getEntity().getContent();

        //Just save your ID in the same sharedPreferences in UI Thread
        runOnUiThread(new Runnable(){
          public void run() { 
            Editor editor = sharedpreferences.edit();
            //save your ID now
           editor.putString("ID", responseId );
           editor.commit();
          } 
       }); 
       ..............................
       ..............................

无论何时需要,只需使用相关的key.like

从SharedPreference中获取
      String id = sharedpreferences.getStringExtra("ID", "Some default value");
相关问题