-1

そのため、投稿を受信して​​いることがわかっているURLにログイン要求を投稿するアプリを作成しています。認証された場合、メソッドはtrueを返す必要があります。これはこれまでの私の方法であり、毎回 false を返します。何が間違っているのでしょうか?

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 メソッドは次のとおりです

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();
}
4

1 に答える 1