博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android网络请求之OkHttp框架
阅读量:6445 次
发布时间:2019-06-23

本文共 2085 字,大约阅读时间需要 6 分钟。

首先声明权限

在build.gradle中加入

compile 'com.squareup.okhttp:okhttp:2.4.0'compile 'com.squareup.okio:okio:1.5.0'

 

API接口:https://www.juhe.cn/docs/api/id/46

 

Get

public void okHttpGet(){        //构造一个Request对象,参数最起码有个url,        // 当然你可以通过Request.Builder设置更多的参数比如:header、method等。        final Request request = new Request.Builder()                .url(COOK_URL_GET + "key=" + COOK_KEY + "&menu=" + MENU)                .build();        getResponse(request);    }

Post

private void okHttpPostCook() {        RequestBody body = new FormEncodingBuilder()                .add("menu", MENU)                .add("key", COOK_KEY)                .build();        //构造一个Request对象,参数最起码有个url,        // 当然你可以通过Request.Builder设置更多的参数比如:header、method等。        final Request request = new Request.Builder()                .url(COOK_URL_POST)                .post(body)                .build();        getResponse(request);    }
getResponse
public void getResponse(Request request){        //创建okHttpClient对象        OkHttpClient mOkHttpClient = new OkHttpClient();        //通过request的对象去构造得到一个Call对象,类似于将你的请求封装成了任务,        // 既然是任务,就会有execute()和cancel()等方法        Call call = mOkHttpClient.newCall(request);        //以异步的方式去执行请求,所以我们调用的是call.enqueue,将call加入调度队列,        // 然后等待任务执行完成,我们在Callback中即可得到结果。        call.enqueue(new Callback()        {            @Override            public void onFailure(Request request, IOException e)            {                Toast.makeText(MainActivity.this, "onFailure", Toast.LENGTH_SHORT);            }            @Override            public void onResponse(final Response response) throws IOException            {                final String responseJSON =  response.body().string();                //onResponse执行的线程并不是UI线程,如果你希望操作控件,还是需要使用handler等                runOnUiThread(new Runnable()                {                    @Override                    public void run()                    {                        tv.setText(responseJSON);                    }                });            }        });    } from: https://www.cnblogs.com/mycd/p/5706167.html
你可能感兴趣的文章
mongoDB 索引
查看>>
【SpringBoot】SpringBoot项目的The temporary upload location ***is not valid 问题
查看>>
jQuery 手风琴效果
查看>>
QT5提示can not find -lGL的解决方法
查看>>
把页面的Table直接输出到Excel文件中
查看>>
for...in的改进版for...of
查看>>
时间正则表达式小叙
查看>>
Linux获取当前用户信息函数
查看>>
访问网络共享时出现“拒绝访问”
查看>>
Bash shell
查看>>
2015移动安全挑战赛 第一题
查看>>
aspx页面@Page指令解析
查看>>
关于web项目中中文乱码问题的总结
查看>>
ios 之CGRectMake
查看>>
选择排序的算法和优化
查看>>
DataGridView 输入数据验证格式(实例)
查看>>
java获取当前年、半年、季度、月、日、小时 开始结束时间等
查看>>
HDOJ 2151
查看>>
Foundation框架 - 快速创建跨平台的网站页面原型
查看>>
Intel 82599网卡异常挂死原因
查看>>