Как получить токен сеанса из httpResponse? - PullRequest
2 голосов
/ 29 ноября 2011

У меня есть API, который описывает следующее:

С учетом типичной HTML-формы следующим образом:

 <form method="post" action="/api">
       <input type="hidden" name="action" value="login" />
      <input type="hidden" name="username" value="testuser" />
      <input type="hidden" name="password" value="123" />
 </form>

Когда отправлена ​​HTML-форма, приведенная ниже, показан пример того, как информация может быть отправлена ​​по протоколу HTTP:

 POST /api HTTP/1.0
 Content-Type: application/x-www-form-urlencoded
 Content-Length: 43
 action=login&username=testuser&password=123

Система отправит ответ, который выглядит следующим образом:

HTTP/1.0 200 OK
Content-Type: application/json
{ 'session_token':'a1234aa334567432bccdd001f123450abcedfa0b' }

Может ли кто-нибудь подсказать мне, как я могу извлечь токен сеанса из почтового ответа, используя android java?

РЕДАКТИРОВАТЬ: (вот часть моего кода для отправки и получения запроса и ответа.)

  HttpPost httpost = new HttpPost("url of server");
        List <NameValuePair> nvps = new ArrayList <NameValuePair>();
        nvps.add(new BasicNameValuePair("username","testuser" ));
        nvps.add(new BasicNameValuePair("password", "1234567" ));
        httpost.setEntity(new UrlEncodedFormEntity(nvps, HTTP.UTF_8));
        HttpResponse response = getResponse(httpost);

public HttpResponse getResponse(HttpPost httpPost) throws Exception {
    DefaultHttpClient httpclient = new DefaultHttpClient();
    HttpResponse response = httpclient.execute(httpPost);
    return response;
}

1 Ответ

0 голосов
/ 29 ноября 2011

Я новичок в Android API, но хотел бы предложить следующее:

Option1 :
Header[] headers = httpResponse.getAllHeaders();

Option2 :
Header[] headers = httpResponse.getHeaders( "session_token_name_here" );

Итерируйте массив заголовков, чтобы найти требуемый заголовок, скажем session_token.

...