Android使用OKHttp访问网络获取Cookie和带Cookie的请求

登录,取得Cookie

public void login(String username, String userpwd) {
    FormBody body = new FormBody.Builder().add("email", username).add("passwd", userpwd).build();
    Request request = new Request.Builder().url(application.getURL() + "/auth/login").post(body).build();
    Call call = new OkHttpClient().newCall(request);
    call.enqueue(new Callback() {
        @Override
        public void onFailure(Call call, IOException e) {

        }

        @Override
        public void onResponse(Call call, Response response) throws IOException {
            Headers headers = response.headers();
            HttpUrl loginUrl = request.url();
            List cookies = Cookie.parseAll(loginUrl, headers);
            cookieStr = new StringBuilder();
            for (Cookie cookie : cookies) {
                cookieStr.append(cookie.name()).append("=").append(cookie.value() + ";");
            }
            final String result = response.body().string();
        }
    });
}

不添加参数默认为get请求

 private void getList() {
        Request request = new Request.Builder().url(application.getURL() + "/user").addHeader("Cookie", cookieStr.toString()).build();
        Call call = new OkHttpClient().newCall(request);
        call.enqueue(new Callback() {
            @Override
            public void onFailure(Call call, IOException e) {
               
            }

            @Override
            public void onResponse(Call call, Response response) throws IOException {
                String bodyString = response.body().string();//获取响应
                LogUtil.i("bodyString", bodyString);
            }
        });
    }

你可能感兴趣的:(Android)