有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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) 个答案

  1. # 1 楼答案

    我是Android API的新手,但我想提出以下建议:

    选项1
    Header[] headers = httpResponse.getAllHeaders();

    选项2
    Header[] headers = httpResponse.getHeaders( "session_token_name_here" );

    迭代headers数组以找到所需的头,例如session_token