1.应用场景
我自己的应用场景是,做一个股票分时图控件demo,需要抓取同花顺网站上的分时图数据,但是这个分时图数据的链接做了cookie校验,直接用httpurlconnection访问,返回403。这个分时图数据的链接在浏览器上也是不能直接打开的,先要在浏览器上访问同花顺股票的其他网页链接,网页里面会加载一段js代码,js代码会设置cookie。这个工具类就是模仿浏览器,先加载普通网页,得到网页里js代码设置的cookie。
2.实现原理
由于我对http协议没那么熟悉,js代码更是完全不了解,所以想到了用android系统提供的WebView方式,先用WebView加载同花顺普通网页,在WebView设置的WebClient的回调中,通过系统API获取到cookie数据。
3.工具类源码
package com.rzc.util;
import android.app.Activity;
import android.text.TextUtils;
import android.webkit.CookieManager;
import android.webkit.WebView;
import android.webkit.WebViewClient;
/**
* Created by rzc on 17/11/7.
*/
public class CookieUtil {
public static void getCookie(Activity activity, final String url,
final OnCookieLoadedListener cookieLoadedListener) {
final WebVi