OkHttp的POST、GET请求方式

本博客内容一致同步到本人的博客站点:http://www.zhoutaotao.xyz 欢迎访问留言交流

OkHttp的POST、GET请求方式

  • 之前看了Retrofit网络请求框架,感觉很Cool,Retrofit是基于OkHttp的二次封装,但是非常有必要回头再看看OkHttp,吃水不忘挖井人,先从最基本的POST GET请求开始吧

POST请求

  • 至于为什么先写POST方式在写GET方式,这是因为啊,我写完POST的代码后发现,我需要写一篇文章记录下来,不过差不多啦
        //创建一个基本请求连接
        OkHttpClient okHttpClient=new OkHttpClient();
        //创建表单存储
        FormEncodingBuilder formEncodingBuilder=new FormEncodingBuilder();
        //将参数以键值对的方式写入
        formEncodingBuilder.add("name","周涛");
        formEncodingBuilder.add("number","1371113");
        //构建响应体,添加基本的URL以及POST参数
        final Request request=new Request.Builder()
                .url("http://position.c.zmit.cn/index.php/api/login")
                //不小心暴露了签到系统的登陆接口啦~~~不过怕啥呢,哈哈哈
                .post(formEncodingBuilder.build())
                .build
        //创建执行Call
        Call call=okHttpClient.newCall(request
        //Call进行异步执行,如果需要阻塞线程,可以使用同步执行的方式
        //及时call.execute();会返回一个Response对象
        //这两个回调函数均不是在主线程执行的,也就UI线程,需要更新UI,请使用下面的机制
         //runOnUiThread(new Runnable() {
          //  @Override
            //public void run() {
              //  Toast.makeText(getBaseContext(),content,showStyle).show();
            //}
    //    });

        call.enqueue(new Callback() {
            @Override
            public void onFailure(Request request, IOException e) {
                Log.e("请求失败",e.toString());
                showTOast("请求失败:"+e.toString(),Toast.LENGTH_SHORT);
            }

            @Override
            public void onResponse(Response response) throws IOException {
                showTOast("请求成功:"+response.body().string(),Toast.LENGTH_SHORT);
            }
        });

GET请求

  • 废话不多说,上代码,只要在POST请求的基础上吧参数代码去掉就行了
  • 很简单吧,其余代码都是类似的,不做复述
        //创建一个基本请求连接
        OkHttpClient okHttpClient=new OkHttpClient();
        //创建表单存储

        final Request request=new Request.Builder()
                .url("http://position.c.zmit.cn/index.php/api/login")
                //不小心暴露了签到系统的登陆接口啦~~~不过怕啥呢,哈哈哈
                .build
        //创建执行Call
        Call call=okHttpClient.newCall(request);

FileUpdate的方法

        OkHttpClient okHttpClient=new OkHttpClient();
        //从SDCard读取文件 ,注意在androidMainFest.xml文件中写外置SD卡读取权限,还有网络权限
        File file = new File(Environment.getExternalStorageDirectory(), "balabala.mp4");
        //加入文件
        //记得刚开始上班的时候,有个多文件上传,难坏了,使用的是Retrofit请求的方式才成功
        //没有试过OkHttp上传多文件怎么样
        RequestBody requestBody=RequestBody.create(MediaType.parse("application/octet-stream"),file);

        final Request request=new Request.Builder()
                .url("http://position.c.zmit.cn/index.php/api/login")
                //这里的URl作为例子,并没有上传的功能。理解就行
                .post(requestBody)
                .build();
        Call call=okHttpClient.newCall(request);
        //老样子,。异步执行
        call.enqueue(new Callback() {
            @Override
            public void onFailure(Request request, IOException e) {
                Log.e("请求失败",e.toString());
                showTOast("请求失败:"+e.toString(),Toast.LENGTH_SHORT);
            }

            @Override
            public void onResponse(Response response) throws IOException {
                showTOast("请求成功:"+response.body().string(),Toast.LENGTH_SHORT);
            }
        });
  • 就是辣么简单,不过还是需要继续封装以下,要不然这么多代码写着累死了,明天继续学习OkHttp
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
OkHttp是一个开源的HTTP客户端库,用于在Android应用程序中进行网络请求。它提供了简洁的API,支持同步和异步请求,并具有高效的性能。 在使用OkHttp进行GET请求时,可以按照以下步骤进行操作: 1. 添加OkHttp库依赖:在项目的build.gradle文件中添加以下依赖项: ``` dependencies { implementation 'com.squareup.okhttp3:okhttp:4.9.0' } ``` 2. 创建OkHttpClient实例:使用OkHttpClient类创建一个HTTP客户端实例,可以设置一些配置参数,例如连接超时时间、读取超时时间等。 ```java OkHttpClient client = new OkHttpClient.Builder() .connectTimeout(10, TimeUnit.SECONDS) .readTimeout(10, TimeUnit.SECONDS) .build(); ``` 3. 创建Request对象:使用Request类创建一个HTTP请求对象,指定请求的URL和请求方法(GET、POST等),可以添加一些请求头或请求参数。 ```java String url = "http://example.com/api/data"; Request request = new Request.Builder() .url(url) .get() .build(); ``` 4. 发送请求并获取响应:使用OkHttpClient的newCall方法发送请求,并通过Response对象获取服务器的响应结果。 ```java try { Response response = client.newCall(request).execute(); if (response.isSuccessful()) { String responseData = response.body().string(); // 处理响应数据 } else { // 处理请求失败情况 } } catch (IOException e) { e.printStackTrace(); } ``` 以上就是使用OkHttp进行GET请求的基本步骤。当然,还可以根据具体需求添加其他功能,例如设置请求头、请求参数、处理响应数据等。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值