首先声明权限

<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框架的更多相关文章

  1. Android 网络请求框架Retrofit

    Retrofit是Square公司开发的一款针对Android网络请求的框架,Retrofit2底层基于OkHttp实现的,OkHttp现在已经得到Google官方认可,大量的app都采用OkHttp ...

  2. Android网络请求框架AsyncHttpClient实例详解(配合JSON解析调用接口)

    最近做项目要求使用到网络,想来想去选择了AsyncHttpClient框架开进行APP开发.在这里把我工作期间遇到的问题以及对AsyncHttpClient的使用经验做出相应总结,希望能对您的学习有所 ...

  3. 安卓网络请求之——OkHttp学习

    之前做安卓项目的时候,HTTP请求用的是android api中的HttpURLConnection和HttpClient,编码比较繁琐,自己封装的也不好.后来知道有很多网络请求的第三方框架,可以方便 ...

  4. xamarin android网络请求总结

    xamarin android中网络请求的框架非常多,在项目中使用的是第三方的一个网络请求框架restsharp,应该是github上.net网络请求最多star的框架,没有之一.这里就简单汇总了其他 ...

  5. Android 网络请求Retrofit + RxJava

    一.背景 经常看到项目用Retrofit+RxJava+RxAndroid的框架,为了看懂项目的结构.现在来了解一下,Retrofit: Retrofit是Square 公司开发的一款正对Androi ...

  6. Android 网络请求及数据处理

    Android 网络请求: 1.Volley   http://blog.csdn.net/t12x3456/article/details/9221611 2.Android-Async-Http  ...

  7. Android 网络请求框架

    1.okHttp 特点 简单.灵活.无连接.无状态 优势: 谷歌官方API在6.0之后在Android SDK中移除了HttpClient,然后他火了起来, 他支持SPDY(谷歌开发的基于TCP应用层 ...

  8. Android网络请求框架

    本篇主要介绍一下Android中经常用到的网络请求框架: 客户端网络请求,就是客户端发起网络请求,经过网络框架的特殊处理,让后将请求发送的服务器,服务器根据 请求的参数,返回客户端需要的数据,经过网络 ...

  9. Android 网络请求框架android-async-http问题

    今天通过接口请求服务器的一些app数据,发现一个很奇怪的问题,请求一个链接的时候,通常在第一次请求发起的时候没有什么问题,能很快的拿到数据,但是 往后再去请求的时候就会等待很久,而且最后会请求失败,一 ...

随机推荐

  1. 【POJ】1819.Disks

    博客园的话插链接链接都是凉的= = 题解 我理解成能不能看到这个圆,除了最后几个圆特殊以外都是等价的,然而我凉了,因为我把圆当成线段来处理,但是,有可能一个圆完全被遮住了,还有一个缝隙,就WA了 计算 ...

  2. LoadRunner FAQ

    LoadRunner FAQ web_concurrent_start和web_concurrent_end web_concurrent_start 语法: int web_concurrent_s ...

  3. 搭建 Android 集成开发环境

    在搭建 Android 集成开发环境之前,我想说的是,我们学习的目标是同时掌握移动开发三种方式:iOS开发.Android开发和Html5手机网页开发.由于iOS的开发工具是采用苹果官方的XCode, ...

  4. CIDR的IP地址的表示与划分方法

    早期的ip地址划分: 最初设计互联网络时,为了便于寻址以及层次化构造网络,每个IP地址包括两个标识码(ID),即网络ID和主机ID.同一个物理网络上的所有主机都使用同一个网络ID,网络上的一个主机(包 ...

  5. Unalignable boolean Series provided as indexer (index of the boolean Series and of the indexed object do not match

    最近在用python做数据挖掘,在聚类的时候遇到了一个非常恶心的问题.话不多说,直接上代码: from sklearn.cluster import KMeans from sklearn.decom ...

  6. 使用DNSPod域名解析

    1 在GoDaddy域名注册商 注册域名 https://sg.godaddy.com/zh/ 2 登陆DNSPod https://www.dnspod.cn 3 选择域名解析 添加域名 4 添加记 ...

  7. [leetcode DP]72. Edit Distance

    计算最少用多少不把word1变为word2, 思路:建立一个dp表,行为word1的长度,宽为word2的长度 1.边界条件,dp[i][0] = i,dp[0][j]=j 2.最优子问题,考虑已经知 ...

  8. AtCoder Grand Contest 019 F-yes or no

    AtCoder Grand Contest 019 F-yes or no 解题思路: 考虑一个贪心策略,假设当前还有 \(x\) 道 \(\text{yes}\) 和 \(y\) 道 \(\text ...

  9. 【构造】Codeforces Round #480 (Div. 2) B. Marlin

    题意:给你一个4*n的网格,保证n为奇数,让你在其中放k个障碍物,不能放在边界的格子上,使得从左上角走到右下角的最短路的方案数,恰好等于从左下角走到右上角的最短路的方案数. k为偶数时,以纵向为对称轴 ...

  10. hdu 4548 初始化+二分 *

    题意:小明对数的研究比较热爱,一谈到数,脑子里就涌现出好多数的问题,今天,小明想考考你对素数的认识.问题是这样的:一个十进制数,如果是素数,而且它的各位数字和也是素数,则称之为“美素数”,如29,本身 ...