2012-07-05 182 views
0

我可以從普通的json鏈接檢索數據但我有一個鏈接,它是密碼保護。如何從json鏈接檢索數據?

比我怎樣才能連接這與我的Android應用程序?

請幫幫我嗎? 連接到我正在使用的普通鏈接的代碼在這裏。

ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(); 
    nameValuePairs.add(new BasicNameValuePair("track_date", "2011-08-09")); 
    nameValuePairs.add(new BasicNameValuePair("tracker_user_id", "" + 374)); 

    try { 
     HttpClient httpclient = new DefaultHttpClient(); 
     HttpPost httppost = new HttpPost(
       "http://abovestress.com/app_stress/fetch_all_detail.php?task=fetchtimefromdateanduserid&"); 
     httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs)); 
     HttpResponse response = httpclient.execute(httppost); 
     HttpEntity entity = response.getEntity(); 
     is = entity.getContent(); 
    } catch (Exception e) { 
     Log.e("log_tag", "Error in http connection " + e.toString()); 
    } 
    // convert response to string 
    try { 
     BufferedReader reader = new BufferedReader(new InputStreamReader(
       is, "iso-8859-1"), 8); 
     StringBuilder sb = new StringBuilder(); 
     String line = null; 
     while ((line = reader.readLine()) != null) { 
      sb.append(line + "\n"); 
     } 
     is.close(); 
     result = sb.toString(); 
     Log.v("log_tag", "Append String " + result); 
    } catch (Exception e) { 
     Log.e("log_tag", "Error converting result " + e.toString()); 
    } 

    // parse json data 
    try { 
     JSONArray jArray = new JSONArray(result); 
     for (int i = 0; i < jArray.length(); i++) { 
      JSONObject json_data = jArray.getJSONObject(i); 
      fetchsosfromID.add(json_data.getString("track_time")); 
     } 
     Log.v("log_tag", "daily_data " + fetchsosfromID); 

    } catch (JSONException e) { 
     Log.e("log_tag", "Error parsing data " + e.toString()); 
    } 
} 
public boolean isTimeExistSos(){ 

    return false; 
} 
+0

我覺得*密碼*和*用戶名*應POST參數,所以你應該通過通過'nameValuePairs'這些值。 – adatapost

+0

我沒有得到您的問題。您在解析JSON數據或從需要某種身份驗證的服務器檢索JSON時遇到問題? – AndoAiron

+0

我面臨的問題在解析數據 –

回答

0

嘗試將此添加到您的HttpClient

//create username & password 
String username = "uname"; 
String password = "passwd"; 
// create connection client 
DefaultHttpClient client = new DefaultHttpClient(params); 
// set credentials for connection client 
client.getCredentialsProvider() 
      .setCredentials(
new AuthScope(null, -1), new UsernamePasswordCredentials(username,password)); 
0
ArrayList<String> fetchsosfromID = new ArrayList<String>(); 
    String result = ""; 
    InputStream is = null; 

    ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(); 
    nameValuePairs.add(new BasicNameValuePair("username", "%@")); 
    nameValuePairs.add(new BasicNameValuePair("password", "%@")); 

    try { 
     DefaultHttpClient httpclient = new DefaultHttpClient(); 
     httpclient.getCredentialsProvider().setCredentials(new AuthScope(null, -1), new UsernamePasswordCredentials("<username>", "<password>")); 

     HttpPost httppost = new HttpPost(
       "http://handbags4women.com/pioneer-iphone/login.php?"); 
     httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs)); 

     HttpResponse response = httpclient.execute(httppost); 
     HttpEntity entity = response.getEntity(); 
     is = entity.getContent(); 
    } catch (Exception e) { 
     Log.e("log_tag", "Error in http connection " + e.toString()); 
    } 
    // convert response to string 
    try { 
     BufferedReader reader = new BufferedReader(new InputStreamReader(
       is, "iso-8859-1"), 8); 
     StringBuilder sb = new StringBuilder(); 
     String line = null; 
     while ((line = reader.readLine()) != null) { 
      sb.append(line + "\n"); 
     } 
     is.close(); 
     result = sb.toString(); 
     Log.v("log_tag", "Append String " + result); 
    } catch (Exception e) { 
     Log.e("log_tag", "Error converting result " + e.toString()); 
    } 

    // parse json data 
    try { 

     JSONObject json_data = new JSONObject(result); 

     Log.v("log_tag", "daily_data " + fetchsosfromID); 

    } catch (JSONException e) { 
     Log.e("log_tag", "Error parsing data " + e.toString()); 
    }