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数据,发现一个很奇怪的问题,请求一个链接的时候,通常在第一次请求发起的时候没有什么问题,能很快的拿到数据,但是 往后再去请求的时候就会等待很久,而且最后会请求失败,一 ...
随机推荐
- ubuntu安装redis 和可视化工具
方式一: 下载地址:http://redis.io/download,下载最新文档版本. 本教程使用的最新文档版本为 2.8.17,下载并安装: $ wget http://download.redi ...
- 【LOJ】#2587. 「APIO2018」铁人两项
题解 学习了圆方树!(其实是复习了Tarjan求点双) 我又双叒叕忘记了tarjan点双一个最重要,最重要的事情! 就是--假如low[v] >= dfn[u],我们就找到了一个点双,开始建立方 ...
- 【POJ】1704.Georgia and Bob
题解 感觉挺神奇的 我们把石子从后往前相邻的两个两两配对,这样他们之间的空格就相当于一堆石子 而配对后左边棋子移动,右边棋子也一定可以跟上取 转化成简单的nim游戏,最后只要看转化出的这(N - 1) ...
- Django实战(9):实现Product的输入校验
让我们完成上一节中的任务: 1.验证price>0:需要在Form中验证: 2. 验证title唯一:在Model中验证: 3. 验证image_url的扩展名:在Form中验证,还可以顺便在M ...
- jQuery 的运行机制(How jQuery Works)
原文地址:http://learn.jquery.com/about-jquery/how-jquery-works/ linkjQuery: 基础知识 这是一个基本的教程,旨在帮助您开始使用jQue ...
- $GLOBALS — 引用全局作用域中可用的全部变量
$GLOBALS 这种全局变量用于在 PHP 脚本中的任意位置访问全局变量(从函数或方法中均可). PHP 在名为 $GLOBALS[index] 的数组中存储了所有全局变量.变量的名字就是数组的键. ...
- js缓存加密
1.访问A链接就以A链接的特定部分为密码盐,生成一个js跳转配置文件名 aojoweiojoiwjeiof2.PHP在生成js跳转文件名的时候,也是根据数据库中的跳转起始链接特定部分作为盐,生成的文件 ...
- vector 邻接表的建立(好笨啊,才懂,可能太困了吧)。。
原创,未经允许不得转载. 图的建立有两种,邻接矩阵和邻接表. 邻接矩阵适用于图较为密集,(稀疏图太浪费存储空间了),图如果较为稀疏,则使用邻接表为宜,dijkstra算法就是以邻接表为基础的. 有向无 ...
- 在控制台连接oracle
Microsoft Windows [版本 6.1.7601]版权所有 (c) 2009 Microsoft Corporation.保留所有权利. C:\Users\lijt>sqlplus ...
- 系统导出数据到excel,数据量过大(大约10W)条,导致服务器 cpu 100%解决方法
系统导出数据到excel,数据量过大(大约10W)条,导致服务器 cpu 100%解决方法