OkHttp3登录并保存cookie
来源:互联网 发布:淘宝直通车分时折扣 编辑:程序博客网 时间:2024/05/16 17:24
为了方便以后再次使用做个简单的记录
1.在MyApplication中声明OKHttpClient方便以后再应用中任何地方的调用
private OkHttpClient client;
2.在LoginAvtivity内创建OKhttpclient对象并使用OKhttp的cookie自动管理功能public OkHttpClient getClient() { return client;}public void setClient(OkHttpClient client) { this.client = client;}
private HashMap<HttpUrl,List<Cookie>> cookieStore=new HashMap<>();
client = new OkHttpClient.Builder().connectTimeout(1000*10, TimeUnit.SECONDS).cookieJar(new CookieJar() { @Override public void saveFromResponse(HttpUrl url, List<Cookie> cookies) { cookieStore.put(url, cookies); cookieStore.put(HttpUrl.parse(AppConfig.LOGIN), cookies); for(Cookie cookie:cookies){ System.out.println("cookie Name:"+cookie.name()); System.out.println("cookie Path:"+cookie.path()); } } @Override public List<Cookie> loadForRequest(HttpUrl url) { List<Cookie> cookies = cookieStore.get(HttpUrl.parse(AppConfig.LOGIN)); if(cookies==null){ System.out.println("没加载到cookie"); } return cookies != null ? cookies : new ArrayList<Cookie>(); }}).build();
3.执行登录操作Map<String, String> map = new HashMap<>();map.put("username", email);map.put("password", password);Callback callback = new Callback() { public void onFailure(Call call, IOException e) { } public void onResponse(Call call, Response response) throws IOException { myApplication.setClient(client); runOnUiThread(new Runnable() { @Override public void run() { showProgress(false); } }); Intent intent = new Intent(LoginActivity.this, MainActivity.class); startActivity(intent); LoginActivity.this.finish(); }};MyHttpClient.sendAnysPost(client,AppConfig.LOGIN, callback, map);
4.请求使用的OKhttp的简单封装import java.util.Map;import okhttp3.Callback;import okhttp3.FormBody;import okhttp3.OkHttpClient;import okhttp3.Request;/** * 封装OKhttp * Created by PC on 2017/8/8. */public class MyHttpClient { public static void sendAnysGet(OkHttpClient client,String url,Callback callback){ Request request = new Request.Builder().url(url).get().build(); client.newCall(request).enqueue(callback); } public static void sendAnysPost(OkHttpClient client,String url,Callback callback,Map<String,String> map){ FormBody.Builder builder = new FormBody.Builder(); if (map!=null) { for (Map.Entry<String,String> entry:map.entrySet()) { builder.add(entry.getKey(),entry.getValue()); } } FormBody body = builder.build(); Request request = new Request.Builder() .url(url) .post(body) .build(); client.newCall(request).enqueue(callback); }}
阅读全文
0 0
- OkHttp3登录并保存cookie
- 关于okhttp3 的 cookie保存
- JSP之保存Cookie实现用户注册并自动登录
- 通过cookie保存并读取用户登录信息实例
- 通过Cookie保存并读取用户登录信息
- 通过cookie保存并读取用户登录信息
- cookie 保存登录状态
- 用Cookie 保存登录信息
- 通过cookie保存登录密码
- Android WebView保存Cookie登录
- 用Cookie保存登录信息
- Android WebView保存Cookie登录
- 保存登录名和登录密码cookie
- 07-通过cookie保存并读取用户登录信息(jsp内置对象)
- python通过本地保存的cookie文件实现登录并访问相关网页
- Andriod中WebView加载登录界面获取Cookie信息并同步保存,使第二次不用登录也可查看个人信息。
- Android 网页登录 POST 请求 保存 COOKIE
- Android 网页登录 POST 请求 保存 COOKIE
- 自己记得
- mysql 多列索引的生效规则
- (hdu 1754) I Hate It(线段树基础,单点更新)
- MMU的通俗理解
- a标签实现文件文件下载(ie8可用)
- OkHttp3登录并保存cookie
- iOS ipv4和ipv6转换
- tensorflow 环境搭建
- 热分析原理搞一搞
- [LeetCode]173. Binary Search Tree Iterator
- python实例(暂停一秒输出)
- tensorflow学习:错误 InternalError: Dst tensor is not initialized
- video.dev 源码解析
- 一份非常棒的vim配置