Android网络请求之OkHttp框架
首先声明权限
<uses-permission android:name="android.permission.INTERNET"/>
在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
Android网络请求之OkHttp框架的更多相关文章
- Android 网络请求框架Retrofit
Retrofit是Square公司开发的一款针对Android网络请求的框架,Retrofit2底层基于OkHttp实现的,OkHttp现在已经得到Google官方认可,大量的app都采用OkHttp ...
- Android网络请求框架AsyncHttpClient实例详解(配合JSON解析调用接口)
最近做项目要求使用到网络,想来想去选择了AsyncHttpClient框架开进行APP开发.在这里把我工作期间遇到的问题以及对AsyncHttpClient的使用经验做出相应总结,希望能对您的学习有所 ...
- 安卓网络请求之——OkHttp学习
之前做安卓项目的时候,HTTP请求用的是android api中的HttpURLConnection和HttpClient,编码比较繁琐,自己封装的也不好.后来知道有很多网络请求的第三方框架,可以方便 ...
- xamarin android网络请求总结
xamarin android中网络请求的框架非常多,在项目中使用的是第三方的一个网络请求框架restsharp,应该是github上.net网络请求最多star的框架,没有之一.这里就简单汇总了其他 ...
- Android 网络请求Retrofit + RxJava
一.背景 经常看到项目用Retrofit+RxJava+RxAndroid的框架,为了看懂项目的结构.现在来了解一下,Retrofit: Retrofit是Square 公司开发的一款正对Androi ...
- Android 网络请求及数据处理
Android 网络请求: 1.Volley http://blog.csdn.net/t12x3456/article/details/9221611 2.Android-Async-Http ...
- Android 网络请求框架
1.okHttp 特点 简单.灵活.无连接.无状态 优势: 谷歌官方API在6.0之后在Android SDK中移除了HttpClient,然后他火了起来, 他支持SPDY(谷歌开发的基于TCP应用层 ...
- Android网络请求框架
本篇主要介绍一下Android中经常用到的网络请求框架: 客户端网络请求,就是客户端发起网络请求,经过网络框架的特殊处理,让后将请求发送的服务器,服务器根据 请求的参数,返回客户端需要的数据,经过网络 ...
- Android 网络请求框架android-async-http问题
今天通过接口请求服务器的一些app数据,发现一个很奇怪的问题,请求一个链接的时候,通常在第一次请求发起的时候没有什么问题,能很快的拿到数据,但是 往后再去请求的时候就会等待很久,而且最后会请求失败,一 ...
随机推荐
- Numpy的简单用法
Numpy的简单用法 import numpy as np 一.创建ndarray对象 列表转换成ndarray: >>> a = [1,2,3,4,5] >>> ...
- PHP接入微信H5支付
开发前配置 进行代码接入前,需在微信后台填写授权回调域名,此域名必须经过ICP备案 开发主要流程 用户下单时选择微信支付 商户进行业务逻辑处理并调用微信统一下单接口,微信H5交易类型为:trade_t ...
- 【原创】MySQL常用脚本整理
#1.查看表容量空间 ) ) ) AS 'free_size(G)' FROM information_schema.tables WHERE TABLE_SCHEMA='test' AND TABL ...
- android无后缀二进制执行文件替代apk实现程序功能
韩梦飞沙 韩亚飞 313134555@qq.com yue31313 han_meng_fei_sha android无后缀二进制执行文件替代apk实现程序功能 实现将data/Android ...
- android httpUrlConnection HttpClient
韩梦飞沙 韩亚飞 313134555@qq.com yue31313 han_meng_fei_sha httpUrlConnection 超文本传输协议统一资源定位器连接 http 超 ...
- BZOJ 2726: [SDOI2012]任务安排 [斜率优化DP 二分 提前计算代价]
2726: [SDOI2012]任务安排 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 868 Solved: 236[Submit][Status ...
- PHP-FPM高负载的解决办法
=================== 优化设置 ========================= When you running a highload website with PHP-FPM ...
- Linux 下安装软件包的方法
Linux应用软件的安装包有三种: 1) tar包,如software-1.2.3-1.tar.gz.它是使用UNIX系统的打包工具tar打包的. 2) rpm包,如software-1.2.3-1. ...
- Eclipse 工具下Maven 项目的快速搭建
Eclipse 工具下Maven 项目的搭建 参考博文:https://www.cnblogs.com/iflytek/p/7096481.html 什么是Maven项目 简单来说,传统的Web项目: ...
- Xcode 小技巧
1.手动添加 #warning ,在不确定的 bug.错误.待定代码处,手动添加 #warning 行,在编译时间提醒自己需要处理的地方. 2.由于 arrayWithObjects: 和 initW ...