资讯专栏INFORMATION COLUMN

NoHttp封装--03 cookie

susheng / 2426人阅读

摘要:请求自动维持支持临时的位置。支持重启关机开机后继续持久化维持。提供了接口,允许开发者监听的变化,也可以改变某个的值。服务器端登录成功登录失败客户端登录按钮成功了成功时拿到头这里就拿到了你想那的失败了文章

NoHttp请求自动维持Cookie:
   1.支持Session、Cookie、临时Cookie的位置。
   2.支持App重启、关机开机后继续持久化维持。
   3.提供了接口,允许开发者监听Cookie的变化,也可以改变某个Cookie的值。

 

服务器端:

@WebServlet("/login")
public class LoginServlet extends BaseJsonServlet {

    private static final long serialVersionUID = 145646L;

    @Override
    protected String onResponse(HttpServletRequest request, HttpServletResponse response) throws Exception {
        String userName = request.getParameter("userName");
        String userpwd = request.getParameter("userPwd");
        if ("yolanda".equals(userName) && "123".equals(userpwd)) {
            Cookie cookie = new Cookie("userInfo", "yolalasf3153a1");
            cookie.setMaxAge(60 * 1000);
            response.addCookie(cookie);
            return "登录成功";
        } else {
            return "登录失败";
        }
    }

}

客户端:

 1 public class CookieGetActivity extends Activity implements View.OnClickListener {
 2 
 3     private TextView mTvResult;
 4 
 5     @Override
 6     protected void onCreate(Bundle savedInstanceState) {
 7         super.onCreate(savedInstanceState);
 8         setContentView(R.layout.activity_login);
 9         findViewById(R.id.btn_login).setOnClickListener(this);
10         mTvResult = (TextView) findViewById(R.id.tv_result);
11     }
12 
13     @Override
14     public void onClick(View v) {
15         if (v.getId() == R.id.btn_login) {// 登录按钮
16             Request request = new FastJsonRequest("http://192.168.1.116/HttpServer/login?userName=yolanda&userPwd=123", RequestMethod.GET);
17             CallServer.getInstance().add(this, request, callBack, 0, true, false, true);
18         }
19     }
20 
21     private HttpCallBack callBack = new HttpCallBack() {
22         @Override
23         public void onSucceed(int what, Response response) {
24             JSONObject jsonObject = response.get();
25             String result = "成功了:" + jsonObject.getString("data");
26 
27             // 成功时拿到头
28             Headers headers = response.getHeaders();
29             List cookies = headers.getCookies();
30             for (HttpCookie httpCookie : cookies) {
31                 String cookieName = httpCookie.getName();
32                 if ("userInfo".equals(cookieName)) {
33                     // 这里就拿到了你想那的cookie
34                     result += "n";
35                     result += httpCookie.getValue();
36                 }
37             }
38             mTvResult.setText(result);
39         }
40 
41         @Override
42         public void onFailed(int what, String url, Object tag, Exception exception, int responseCode, long networkMillis) {
43             mTvResult.setText("失败了" + exception.getClass().getName());
44         }
45     };
46 
47 }

 

 

文章:https://blog.csdn.net/sinat_31057219/article/details/74217030

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/3073.html

相关文章

  • NoHttp封装--04 缓存

    摘要:请求,缓存非标准协议,改变缓存模式为请求图片,缓存图片仅仅请求网络无论如何也只会请求网络,也不支持这种默认行为。仅仅读取缓存无论如何仅仅读取缓存,不会请求网络和其它操作。 1、Default模式,也是没有设置缓存模式时的默认模式 这个模式实现http协议中的内容,比如响应码是304时,当然还会结合E-Tag和LastModify等头。 StringRequest request = ne...

    Kerr1Gan 评论0 收藏0
  • Cookie管理 WebView同步

    摘要:的自动维护,严格遵守协议,即区分临时和有效期。临时在本次运行期内一直有效,直到被杀死即被清除。设置有效期为最大。同步到腾讯很多人在使用它腾讯提供的服务器,来替代原生的,如果你正是使用腾讯内核的话,同样也支持同步。NoHttp的Cookie管理原理 在文档的初始化配置一章讲了NoHttp如何配置或者禁用cookie自动管理。 NoHttp的Cookie自动维护,严格遵守Http协议,即区分临时...

    miracledan 评论0 收藏0
  • NoHttp封装--07 自定义异步任务框架

    摘要:请求网络失败拿到执行结果,直接更新核心类更新的发送结果的默认的线程池默认并发大小发送结果的的锁本地异步任务的执行器拿到默认的线程池设置默认的线程池开始执行任务发送进度更新到主线程当返回进度更新的时候发送进度执行结果到主线程当返回执行结果的MainActivity: 1 public class MainActivity extends Activity implements View.O...

    Hancock_Xu 评论0 收藏0
  • NoHttp封装--05 文件下载

    摘要:下载下载按钮暂停开始等下载状态下载进度条下载地址下载请求下载地址保存的文件夹文件名是否断点续传下载如果发现文件已经存在是否删除后重新下载检查已经下载了一半的文件是什么状态文件已经下载完成下载完成已经下载完成提示用户安装代表文件不存在,需要从xml java: 1 import com.yolanda.nohttp.Headers; 2 ...

    IamDLY 评论0 收藏0
  • NoHttp封装--02 自定义请求

    摘要:实体类请求针对的具体在中使用处理登录结果登录接口结果处理登出结果退出接口结果请求失败可以解析所有的自定义请求但是前提是传进来的必须提供了默认实现bean实体类请求: 1.bean 1 import java.io.Serializable; 2 import com.alibaba.fastjson.annotation.JSONField; 3 4 public class U...

    TigerChain 评论0 收藏0

发表评论

0条评论

susheng

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<