Android OkHttp的配置

        上一章节介绍了okhttp的基本使用,这一章主要介绍okhttp的配置包括文件的上传下载,cookies的配置。

2 cookies的配置

Map<String ,List<Cookie>> cookies=new HashMap<>();
    //List<Cookie> cookies =new ArrayList<>();
    @Test
    public void cookieTest() throws IOException {
        OkHttpClient okHttpClient = new OkHttpClient
                .Builder()
                .cookieJar(new CookieJar() {
                    @Override
                    public void saveFromResponse(@NonNull HttpUrl httpUrl, @NonNull List<Cookie> list) {
                        //用于把cookie数据封装为一个list集合
                        //先保存到内存
                       cookies.put(httpUrl.host(),list);
                    }
                    @NonNull
                    @Override
                    public List<Cookie> loadForRequest(@NonNull HttpUrl httpUrl) {
                        //是这个网站就返回cookie,不是就返回一个空的list
                        if(httpUrl.host().equals("www.wanandroid.com")){
                            List<Cookie> cookieList =CookieUnitTest.this.cookies.get(httpUrl.host());
                            return cookieList==null?new ArrayList<>():cookieList;
                        }
                        return new ArrayList<>();
                    }
                })
                .build();

        FormBody formBody=new FormBody.Builder().add("username","***")
                .add("password","***")
                .build();
        Request request = new Request.Builder().url("https://www.wanandroid.com/user/login")
                .post(formBody)
                .build();
        //请求的call对象
        Call call=okHttpClient.newCall(request);
        Response response =call.execute();
        System.out.println(response.body().string());

        //测试cookie是否可用
        request = new Request.Builder().url("https://www.wanandroid.com/lg/collect/list/0/json")
                .build();
        //请求的call对象
        Call call2=okHttpClient.newCall(request);
        Response response2 =call2.execute();
        System.out.println(response2.body().string());

3.文件上传的配置

    @Test
    public void uploadFileTest() throws IOException {
        OkHttpClient okHttpClient = new OkHttpClient();
        File file = new File("C:\\Users\\A\\Desktop\\test.txt");
        File file2 = new File("C:\\Users\\A\\Desktop\\test2.txt");

        MultipartBody multipartBody =new MultipartBody.Builder()
                .addFormDataPart("file1",file.getName(),RequestBody.create(file, MediaType.parse("text/plain")))//key加value加文件类型
                .addFormDataPart("file2",file2.getName(),RequestBody.create(file, MediaType.parse("text/plain")))
                .addFormDataPart("a","1")
                .build();
        Request build = new Request.Builder().url("https://www.httpbin.org/post").post(multipartBody).build();
        Call call=okHttpClient.newCall(build);
        Response response = call.execute();
        System.out.println(response.body().string());
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值