1、OkHttp框架使用了OkIo.jar包,不要忘记添加。

2、对于Request对象是如何实例化的,大家可以参考--java builder设计模式

http://www.cnblogs.com/moonz-wu/archive/2011/01/11/1932473.html

3、通过同步GET访问网络,主要分为四步:

(1)、声明并实例化一个OkHttpClient对象。

(2)、声明并实例化一个Request对象,并设置URL等参数。

(3)、执行Request请求,并获得一个Response对象。

(4)、根据Response的isSuccessful()方法,判断是否成功,然后从Response对象中获取返回数据。

4、通过异步GET访问网络和同步GET是一样的,不过处理返回数据实在CallBack接口中实现的。

5、

public class GetActivity extends Activity {
private final OkHttpClient client = new OkHttpClient(); private TextView mTvGet; private String result; @Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_get); initView(); new Thread(getThread).start();
} public void initView() {
mTvGet = (TextView) findViewById(R.id.tv_get_show);
} private Runnable getThread = new Runnable() {
public void run() {
try {
getRun2();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
};
}; /** 同步GET */
public void getRun() throws Exception {
// 实例化请求对象
Request request = new Request.Builder().url("https://www.baidu.com/").build();
// 得到返回对象
Response response = client.newCall(request).execute(); // 判断返回对象是否成功
if (!response.isSuccessful()) {
result += "请求出错!";
} else {
// 输出Headers
Headers responseHeaders = response.headers();
for (int i = 0; i < responseHeaders.size(); i++) {
result += responseHeaders.name(i) + "" + responseHeaders.value(i);
}
// 输出Body
result += response.body().string();
} getHandler.sendEmptyMessage(0);
} /** 异步GET */
public void getRun1() throws Exception {
Request request = new Request.Builder().url("https://www.baidu.com/").build();
client.newCall(request).enqueue(new Callback() { @Override
public void onResponse(Response response) throws IOException {
// 判断返回对象是否成功
if (!response.isSuccessful()) {
result += "请求出错!";
} else {
// 输出Headers
Headers responseHeaders = response.headers();
for (int i = 0; i < responseHeaders.size(); i++) {
result += responseHeaders.name(i) + "" + responseHeaders.value(i);
}
// 输出Body
result += response.body().string();
} getHandler.sendEmptyMessage(0);
} @Override
public void onFailure(Request arg0, IOException e) {
// TODO Auto-generated method stub
e.printStackTrace();
}
});
} private Handler getHandler = new Handler() {
public void handleMessage(Message msg) {
mTvGet.setText(result);
};
};
}

6、访问网络不能在主线程中进行,还有不要忘记加入访问网络的权限。

<uses-permission android:name="android.permission.INTERNET" />

7、参考博文:

http://www.2cto.com/kf/201505/397557.html

Android网络开发之OkHttp--基本用法GET的更多相关文章

  1. Android网络开发之OkHttp--基本用法POST

    1.OkHttp框架使用了OkIo框架,不要忘记下OkIo.jar 2.通过POST访问网络,和通过GET访问网络基本相同,多了设置请求参数的过程.主要分为五步: (1).声明并实例化一个OkHttp ...

  2. Android网络开发之Volley--Volley基本用法ImageRequest(三)

    1.ImageRequest用法和StringRequest一样,主要分为3步: (1).实例化一个RequestQueue对象 (2).设置ImageRequest对象参数,并将ImageReque ...

  3. Android网络开发之Volley--Volley基本用法JsonObjectReques(二)

    1.JsonObjectRequest用法 用法和StringRequest基本相同,主要分为3步: (1).实例化一个RequestQueue对象 (2).设置JsonObjectRequest对象 ...

  4. Android网络开发之Volley--Volley基本用法StringRequest(一)

    1.StringRequest用法 主要分为3步: (1).实例化一个RequestQueue对象 (2).设置StringRequest对象参数,并将StringRequest对象加入Request ...

  5. Android网络开发之OkHttp--基本用法实例化各个对象

    1.实例化OkHttpClient对象,OkHttpClient包含了以下属性,以及set()和get()方法.但并没有包含具体的执行方法,详情见源码. //实例化OkHttpClent对象 priv ...

  6. Android 网络开发之WIFI

    WIFI就是一种无线联网技术,常见的是使用无线路由器.那么在这个无线路由器的信号覆盖的范围内都可以采用WIFI连接的方式进行联网.如果无线路由器连接了一个ADSL线路或其他的联网线路,则又被称为&qu ...

  7. Android网络开发之用tcpdump抓包

    Android开发过程中,当涉及到网络通信的时候,有一些字段须要抓包获取.我之前由于SSDP设备发现的包头格式没有写对,经过抓包分析和标准包头对照发现了这个困扰我非常久的问题.总之,掌握在Androi ...

  8. Android网络开发之Volley--Volley自定义Request

    1.自定义一个解析Json的Request,这里使用JackSon框架来解析Json.你也可以自定义一个解析XML的Request,或者使用FastSon来解析Json. 2.我们首先来看一下Stri ...

  9. Android网络开发之WIFI

    WIFI全称Wireless Fidelity, 又称802.11b标准.WIFI联盟成立于1999年,当时的名称叫做Wireless Ethernet Compatibility Alliance( ...

随机推荐

  1. ASP.NET MVC 使用TempData

    ASP.NET MVC的TempData用于传输一些临时的数据,例如在各个控制器Action间传递临时的数据或者给View传递一些临时的数据,相信大家都看过"在ASP.NET页面间传值的方法 ...

  2. 监控 monitor java 代码

    /* * To change this license header, choose License Headers in Project Properties. * To change this t ...

  3. 【Machine Learning in Action --2】K-近邻算法构造手写识别系统

    为了简单起见,这里构造的系统只能识别数字0到9,需要识别的数字已经使用图形处理软件,处理成具有相同的色彩和大小:宽高是32像素的黑白图像.尽管采用文本格式存储图像不能有效地利用内存空间,但是为了方便理 ...

  4. python的历史与优劣

    历史 Python的创始人是Guido van Rossum,在发明Python语言之前Guido曾参与过一门称作ABC的语言的设计,ABC是专门为非专业程序员设计的:Guido在Python语言的设 ...

  5. A*搜寻算法(A星算法)

    A*搜寻算法[编辑] 维基百科,自由的百科全书 本条目需要补充更多来源.(2015年6月30日) 请协助添加多方面可靠来源以改善这篇条目,无法查证的内容可能会被提出异议而移除. A*搜索算法,俗称A星 ...

  6. BZOJ3036绿豆蛙的归宿

    BZOJ3036绿豆蛙的归宿 锲下陟凝 褰宓万 郝瓦痕膳 叶诙摞 А知π剧 椐猊∫距 屠缲佗 ゲ蕖揪 俜欧彖鹤 磲砩ほ #琛扶 觅电闸ス 捆鳢げ 浜窠 魂睨"烁 蕞滗浼 洒ヂ跪 ...

  7. QML插件扩展(一)

    准备分两节来介绍QML扩展插件,分别为 (一)基于QML文件的扩展方式 (二)基于C++的插件扩展 这篇先介绍基于QML的插件扩展. 先介绍几个基本概念: qmldir: 用于组织自定义的QML插件, ...

  8. JSP导出Excel后身份证后三位为0

    JSP导出Excel身份证号码超出Excel最大限制,用科学计数法表示,但后三位为0,修改方式: <style type="text/css">.txt    {    ...

  9. NoRouteToHostException

    http://stackoverflow.com/questions/1572215/how-to-avoid-a-noroutetohostexception 端口不够用,注意一定要关闭所有不用的连 ...

  10. Androidndk开发打包时我们应该如何注意平台的兼容(x86,arm,arm-v7a)

    很多朋友在开发Android JNI的的时候,会遇到findlibrary returned null的错误,因为某种原因,so没有打包到apk中.下面浅析下引起该错误的原因以及平台兼容性问题. 一. ...