java如何从httpResponse检索会话令牌?
我有一个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' }
有人能告诉我如何使用安卓 java从post响应中检索会话令牌吗
编辑:(以下是我发送和检索请求和响应的一些代码。)
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 楼答案
我是Android API的新手,但我想提出以下建议:
选项1:
Header[] headers = httpResponse.getAllHeaders();
选项2:
Header[] headers = httpResponse.getHeaders( "session_token_name_here" );
迭代headers数组以找到所需的头,例如
session_token