Android HttpURLConnection Cookie

Cookie 只是 Session 机制的一种常用形式,我们也可以使用其它方式来作为客户端的一个唯一标识, 这个由服务器决定,唯一能够证明一个客户端标识就好

除了这种方式外,我们还可以使用 URL 重写方法来实现,所以以后别傻傻的跟别人说:Session 不就是 Cookie

HTTP 登录请求的一个简单过程

一般是登陆的时候:服务器通过 Set-Cookie 响应头,返回一个 Cookie,浏览器默认保存这个 Cookie

后续访问相关页面的时候会带上这个 Cookie,通过 Cookie 请求头来完成访问

如果没 Cookie 或者 Cookie 过期,就提示用户没登陆,登陆超时,访问需要登陆之类的信息

我们使用 HttpClientHttpURLConnection 也可以模拟这个过程

登陆后获取 Cookie

conn.getHeaderField("Set-Cookie");

请求时带上 Cookie

conn.setRequestProperty("Cookie",cookie);

URL重写

当然了,除了上面这种设置方式外,又可以使用 URL 重写的办法

GET 请求

如果是 GET 请求,可以直接把参数附加在 URL 后面,诸如 &sessionid=xxxxx

POST 请求

POST 请求必须这么做

HttpPut httpPut = new HttpPut(PUTACKCODE_URL);

httpPut.setHeader("Content-Type","application/json;charset=UTF-8");


List<NameValuePair> params = new ArrayList<NameValuePair>

params.add(new BasicNameValuePair("activation_code",actCode));
params.add(new BasicNameValuePair("session",new JSONObject().put("id",cookie).toString()));

entity.setContentType("application/json");

httpPut.setEntity( entity );

HttpResponse course_response = new DefaultHttpClient().execute(httpPut);

上面的代码我们使用的是 JSON 格式,服务器在接到请求后取出里面的 session

Android 基础教程

关于   |   FAQ   |   我们的愿景   |   广告投放   |  博客

  简单教程,简单编程 - IT 入门首选站

Copyright © 2013-2022 简单教程 twle.cn All Rights Reserved.