Day3:okhttp

依赖::

implementation 'com.squareup.okhttp3:okhttp:3.12.1'//okhttp依赖

get请求:

    OkHttpClient.Builder builder = new OkHttpClient.Builder();
    builder.callTimeout(5, TimeUnit.SECONDS);//连接超时
    builder.readTimeout(5,TimeUnit.SECONDS);//读取超时
    OkHttpClient client = builder.build();

    Request.Builder builder1 = new Request.Builder();
    builder1.url("http://www.qubaobei.com/ios/cf/dish_list.php?stage_id=1&limit=20&");
    builder1.get();
    Request request = builder1.build();

    Call call = client.newCall(request);

    call.enqueue(new Callback() {
        //请求失败
        @Override
        public void onFailure(Call call, IOException e) {
        }
        //请求成功
        @Override
        public void onResponse(Call call, Response response) throws IOException {
            //获得响应体:json串
            ResponseBody body = response.body();
            //通过body直接转成字符串
            String json = body.string();
			//获取到网络的json字符串
        }
    });

post请求:

OkHttpClient client = new OkHttpClient.Builder()
            .callTimeout(5, TimeUnit.SECONDS)
            .readTimeout(5, TimeUnit.SECONDS)
            .build();

    FormBody formBody = new FormBody.Builder()
            .add("phone", "13594343356")
            .add("passwd", "123654")
            .build();
            
    final Request request = new Request.Builder()
            .url("https://www.apiopen.top/createUser?key=00d91e8e0cca2b76f515926a36db68f5&")
            .post(formBody)
            .build();
            
    Call call = client.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 string = response.body().string();
			//获取到json字符串
        }
    });

下载文件:

 OkHttpClient client = new OkHttpClient.Builder()
            .readTimeout(5, TimeUnit.SECONDS)
            .callTimeout(5, TimeUnit.SECONDS)
            .build();

    Request request = new Request.Builder()
            .get()
            .url("http://169.254.113.244/hfs/a.jpg")
            .build();

    Call call = client.newCall(request);

    call.enqueue(new Callback() {
        @Override
        public void onFailure(Call call, IOException e) {
		//失败
        }

        @Override
        public void onResponse(Call call, Response response) throws IOException {//成功
            ResponseBody body = response.body();
            //获取总长度
            long l = body.contentLength()
            InputStream inputStream = body.byteStream();
        }
    });

上传文件

OkHttpClient client = new OkHttpClient.Builder()
            .callTimeout(5, TimeUnit.SECONDS)
            .readTimeout(5, TimeUnit.SECONDS)
            .build();

    MultipartBody requestBody = new MultipartBody.Builder()
            .setType(MultipartBody.FORM)
            .addFormDataPart("file", "aaaa.mp3",
                    RequestBody.create(MediaType.parse("media/mp3"), new File("/sdcard/XXX.mp3")))
                    //其中。。第一个类型是固定格式(file),第二个是上传到服务器的名字,第三个是requestbody需要方法create
            .build();
            
    final Request request = new Request.Builder()
            .url("http://172.21.79.88/hfs")
            .post(requestBody)
            //post请求。。
            .build();
            
    Call call = client.newCall(request);
    
    call.enqueue(new Callback() {
        @Override
        public void onFailure(Call call, IOException e) {
        }
        @Override
        public void onResponse(Call call, Response response) throws IOException {
            
        }
    });
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值