安卓02Day03

okHTTP请求

记得要加权限(不加活该你错)

get请求

private void getwenjian() {
        get.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                OkHttpClient.Builder builder = new OkHttpClient.Builder();
                builder.callTimeout(1, TimeUnit.MINUTES);
                builder.connectTimeout(1,TimeUnit.MINUTES);
                OkHttpClient okHttpClient = builder.build();

                Request.Builder builder1 = new Request.Builder();
                builder1.url(urlstr);
                builder1.get();
                Request request = builder1.build();

                Call call = okHttpClient.newCall(request);
                call.enqueue(new Callback() {
                    @Override
                    public void onFailure(Call call, IOException e) {
                        Log.i("----", "onFailure: 请求失败"+e);
                    }

                    @Override
                    public void onResponse(Call call, Response response) throws IOException {
                        ResponseBody body = response.body();
                        String string = body.string();
                        Log.i("----", "onResponse: "+string);

                    }
                });
            }
        });

post请求

post.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                OkHttpClient.Builder builder = new OkHttpClient.Builder();
                builder.callTimeout(1, TimeUnit.MINUTES);
                builder.connectTimeout(1,TimeUnit.MINUTES);
                OkHttpClient okHttpClient = builder.build();
                //itemid=2&act=ad_app
                FormBody body = new FormBody.Builder()
                        .add("itemid", "2")
                        .add("act", "ad_app").build();


                Request.Builder builder1 = new Request.Builder();
                builder1.url(poststr);
                builder1.post(body);
                Request request = builder1.build();

                Call call = okHttpClient.newCall(request);
                call.enqueue(new Callback() {
                    @Override
                    public void onFailure(Call call, IOException e) {
                        Log.i("----", "onFailure: 请求失败"+e);
                    }

                    @Override
                    public void onResponse(Call call, Response response) throws IOException {
                        ResponseBody body = response.body();
                        String string = body.string();
                        Log.i("----", "onResponse: "+string);

                    }
                });
            }
        });

下载文件

 go.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                OkHttpClient client = new OkHttpClient.Builder().connectTimeout(1, TimeUnit.MINUTES)
                        .callTimeout(1, TimeUnit.MINUTES)
                        .build();
    progressBar.setMax(100);
                final Request request = new Request.Builder().url(gostr).get().build();

                Call call = client.newCall(request);
                call.enqueue(new Callback() {
                    @Override
                    public void onFailure(Call call, IOException e) {
                        Toast.makeText(MainActivity.this, "请求失败", Toast.LENGTH_SHORT).show();
                    }

                    @Override
                    public void onResponse(Call call, Response response) throws IOException {
                        ResponseBody body = response.body();
                        File file = Environment.getExternalStorageDirectory();
                        InputStream inputStream = body.byteStream();
                        int len=0;
                        byte[] b=new byte[1024];
                        int index = 0;
                        long l = body.contentLength();//获得总大小
                        FileOutputStream bai = new FileOutputStream(new File(file, "bai.mp4"));
                        while((len=inputStream.read(b))!=-1){
                            index+=len;
                            bai.write(b,0,len);
                            int ff= (int) (index/l*100);
                            progressBar.setProgress(index);
                            Log.i("-----", "onResponse: "+index);
                        }


                    }
                });
                un.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {

                    }
                });

            }
        });

下载文件

  public void show(View view) {
        Toast.makeText(MainActivity.this, "aaaaa", Toast.LENGTH_SHORT).show();
        OkHttpClient client = new OkHttpClient.Builder().callTimeout(1, TimeUnit.MINUTES)
                .connectTimeout(1, TimeUnit.MINUTES)
                .build();

        RequestBody requestBody = RequestBody.create(MediaType.parse("media/MP3"), new File("/sdcard/Music/程响 - 江南夜色.mp3"));
        MultipartBody file = new MultipartBody.Builder()
                .setType(MultipartBody.FORM)
                .addFormDataPart("file", "aaa.mp3", requestBody).build();


        Request request1 = new Request.Builder()
                .url("http://169.254.152.45/hfs/")
                .post(file)
                .build();
        Call call1 = client.newCall(request1);

        call1.enqueue(new Callback() {
            @Override
            public void onFailure(Call call, IOException e) {
                Log.i("-----", "onFailure: 上传失败了");
            }

            @Override
            public void onResponse(Call call, Response response) throws IOException {
                Log.i("--------", "onResponse: 发送成功");
            }
        });
    }

必须设置文件允许别人访问与操作

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值