2013-04-30 4 views
-1

그래서 나는 그 게시물을 받는다는 것을 알고있는 URL에 로그인 요청을 게시하는 앱을 작성하고 있습니다.이 메소드는 인증되면 true를 반환해야합니다. 이것은 지금까지의 나의 방법이며, 매번 잘못된 것이라는 아이디어를 언제나 반환합니다. 대답은 내 코드는 내가 바보 라인 추가 깜빡 완벽하게 잘 작동입니다왜 내 방법은 인증되지 않습니까?

private static String convertStreamToString(InputStream is) { 
    BufferedReader reader = new BufferedReader(new InputStreamReader(is)); 
    StringBuilder sb = new StringBuilder(); 

    String line = null; 
    try { 
     while ((line = reader.readLine()) != null) { 
      sb.append(line + "n"); 
     } 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } finally { 
     try { 
      is.close(); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
    } 
    return sb.toString(); 
} 
+0

데이터를 다시받습니다. s의 json 데이터 및 나는 거기에 사용되지 않는 변수가 있다는 것을 알고 있습니다. 그리고 저는 데이터를 다시 가져 오는 것에 대해 정말로 걱정하고 있습니다. 올바르게 성공할 수 있도록 올바르게 deserialize되고 있습니다. –

+0

나는 확실히 로그하려고합니다. 예외가 발생하면 아마 코드에 어딘가가 던져 질 것입니다. –

+0

이고 convertStreamToString은 "\ n" –

답변

0

을 다음과 같이

public Boolean authenticate_user(String username, String password) { 
Boolean success = false; 
// Create a new HttpClient and Post Header 
HttpClient httpclient = new DefaultHttpClient(); 
HttpPost httppost = new HttpPost("my url"); 
try { 
    // Add your data 
    List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2); 
    nameValuePairs.add(new BasicNameValuePair("username", username)); 
    nameValuePairs.add(new BasicNameValuePair("password", password)); 
    httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs)); 

    // Execute HTTP Post Request 
    HttpResponse response = httpclient.execute(httppost); 
    // Response 
    HttpEntity entity = response.getEntity(); 
    if (entity != null) { 
     InputStream instream = entity.getContent(); 
     JSONTokener tokener = new JSONTokener(convertStreamToString(instream)); 
     JSONObject root = new JSONObject(tokener); 
     success = root.getBoolean("success"); 
     Integer id = root.getInt("id"); 
     String auth_token = root.getString("auth_token"); 
     String first_name = root.getString("first_name"); 

     //Save data to sharedprefs 
     SharedPreferences.Editor editor = getPreferences(MODE_PRIVATE).edit(); 
     editor.putString("hgtoken",auth_token); 
     editor.commit(); 
     } 
} catch (ClientProtocolException e) { 
} catch (IOException e) { 
} catch (JSONException e) { 
} 
if(success == true) { 
    return true; 
} else { 
    return false; 
} 
} 

또한 내 convertStreamToString 방법은 다음과 같습니다 내 안드로이드 매니페스트에

<uses-permission android:name="android.permission.INTERNET"></uses-permission> 

을 .. 감사합니다. 내 예외를 기록하도록 상기시켜 준 Simon은 나를 꺼내주었습니다.

관련 문제