2014-02-18 3 views
0

Я аутентифицирую своих пользователей с помощью OAuth 2.0, и мне нужно сделать запрос на отправку по почте (отправка идентификатора клиента, секрет клиента и т. Д.). Я думаю, что я делаю это успешно. В качестве ответа я должен получить токен доступа и другую информацию. Но когда я печатаю ответ в своем LogCat, он появляется как «[email protected]». Где я могу найти сообщение? Ниже мой код, и я последовал этому примеру http://www.androidhive.info/2011/10/android-making-http-requests/Как читать Http Response

public class PasteCode extends Activity { 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    // TODO Auto-generated method stub 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.pastecode); 

    final EditText codeinput = (EditText) findViewById(R.id.editText1); 

    Button send_btn = (Button) findViewById(R.id.button1); 
    send_btn.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View v) { 

      final String code = codeinput.getText().toString(); 

      new Thread(new Runnable() { 
       @Override 
       public void run() { 

     HttpClient httpClient = new DefaultHttpClient(); 
    HttpPost httpPost = new HttpPost("https://accounts.google.com/o/oauth2/auth?"); 

    ArrayList<NameValuePair> nameValuePair = new ArrayList<NameValuePair>(5); 
    nameValuePair.add(new BasicNameValuePair("code", code)); 
    nameValuePair.add(new BasicNameValuePair("client_id", "---------")); 
    nameValuePair.add(new BasicNameValuePair("client_secret", "---")); 
    nameValuePair.add(new BasicNameValuePair("redirect_uri", "urn:ietf:wg...")); 
    nameValuePair.add(new BasicNameValuePair("grant_type", "authorization_code")); 

try { 
    httpPost.setEntity(new UrlEncodedFormEntity(nameValuePair)); 

    } catch (UnsupportedEncodingException e) { 
    // writing error to Log 
    e.printStackTrace(); 
    } 

    // Making HTTP Request 

try { 
    HttpResponse response = httpClient.execute(httpPost); 

    // writing response to log 
    Log.d("Http Response:", response.toString()); 
    } catch (ClientProtocolException e) { 
    // writing exception to log 
    e.printStackTrace(); 
    } catch (IOException e) { 
    // writing exception to log 
    e.printStackTrace(); 

    } 

    } 
    }).start(); 

    } 
}); 
} 

} 

ответ

2

Вы можете использовать BufferedReader:

BufferedReader rd = new BufferedReader(new InputStreamReader(response.getEntity().getContent())); 
StringBuilder builder = new StringBuilder(); 
String str = ""; 

while ((str = rd.readLine()) != null) { 
    builder.append(str); 
} 

String text = builder.toString(); 
0

Ответ от Nikis должен работать нормально, но я нахожу это static method found in EntityUtils быть немного более лаконична. Если вы посмотрите here, вы увидите, что реализации относительно схожи.

+0

Спасибо вам большое, я получил его, используя BufferReader. – user3271572