android通过保存session和cookie进行二次访问验证和头传参验证

 直接上代码:

private static ConcurrentHashMap> cookieStore = new ConcurrentHashMap<>();
private static String Authorization; 
/**
 * Created by LQD ON 2018/6/21 0021
 */
public static void okHttp_postFromParameters2() {

                try {
                    String url = "http://192.168.1.175:8080/andriodContent/getAll";
                    OkHttpClient okHttpClient = new OkHttpClient.Builder()
                            .cookieJar(new CookieJar() {//这里可以做cookie传递,保存等操作
                                @Override
                                public void saveFromResponse(HttpUrl url, List cookies) {//可以做保存cookies操作
                                    cookieStore.put(url.host(), cookies);
                                }
                                @Override
                                public List loadForRequest(HttpUrl url) {//加载新的cookies
                                    List cookies = cookieStore.get(url.host());
                                    return cookies != null ? cookies : new ArrayList();
                                }
                            }) .build();
                    //OkHttpClient okHttpClient = new OkHttpClient();
                    /*RequestBody formBody = new FormBody.Builder().add("userName", "1")
                            .add("userPassword", "222222").add("userMobile", "15986325852")
                            .build();//.add("format", "json")*/
                    Map headersParams = new TreeMap();
                    Log.e("TAG","Authorization2"+ Authorization );
                    headersParams.put("Authorization", Authorization);
                    Request request = new Request.Builder()
                            .url(url)
                            .headers(SetHeaders(headersParams)).build();
                    okhttp3.Response response = okHttpClient.newCall(request).execute();
                    String responseStr = response.body().string();
                    Log.i("wxy", responseStr);
                    saveFile(responseStr);
                    Initdata jsonRootBean = jsonToObjectForFastJson(responseStr);
                    DbUtil.initData(jsonRootBean);
                } catch (Exception e) {
                    e.printStackTrace();
                }
    }
    /**
     * 设置请求头
     *
     * @param headersParams
     * @return
     */
    private static Headers SetHeaders(Map headersParams) {
        Headers headers = null;
        okhttp3.Headers.Builder headersbuilder = new okhttp3.Headers.Builder();

        if (headersParams != null) {
            Iterator iterator = headersParams.keySet().iterator();
            String key = "";
            while (iterator.hasNext()) {
                key = iterator.next().toString();
                headersbuilder.add(key, headersParams.get(key));
                Log.d("get http", "get_headers===" + key + "====" + headersParams.get(key));
            }
        }
        headers = headersbuilder.build();
        return headers;
    }

你可能感兴趣的:(小工具)