android-Okhttp初步使用

  自从谷歌把android的请求框架换成Okhttp后,android开发人员对其的讨论就变的越来越火热,所有咱作为一枚吊丝android程序员,也不能太落后,所以拿来自己研究一下,虽然目前项目开发用的不是okhttp,但自己提前看一点,还是对提高开发技术有好处的。

  目前只要求会使用,先不要求对其原理全面的了解。

  

  首先,要使用Okhttp,要先导入两个jar依赖包。Okhttp.jar(我目前用的是2.7.0)与okio.jar(目前1.6.0)到libs下,然后一阵噼啪build path,就行了.

  本例请求的是json数据(是天气预报的json数据,大家没事时也可以用这个请求练手。),至于json数据的解析什么的,就不做了,只请求下来,然后做一个展示就行了,别的都是很简单的。哈哈哈哈。。。。

  好,下面直接上代码,就是在一个布局中,设置一个button.一个textview,当点击button时,请求数据,然后展示到textview上。(本例要第二次请求才会展示到textview上,原因很好分析。)

  layout布局:

  

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="${relativePackage}.${activityClass}" >

    <Button
        android:id="@+id/bt_ok"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Okhttp请求网络"
        android:gravity="center_horizontal"
        android:clickable="true"
        android:onClick="btOk"
        />
    <TextView
        android:id="@+id/tv_ok"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@id/bt_ok"
        android:gravity="center_horizontal"
        />

</RelativeLayout>

  下面的是逻辑代码。

package com.example.jwwokhttp;

import java.io.IOException;

import com.squareup.okhttp.OkHttpClient;
import com.squareup.okhttp.Request;
import com.squareup.okhttp.Response;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

public class OkhttpActivity extends Activity {

	private OkHttpClient client;
	private TextView tvOk;
	private Response response;
	private String responseOk;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_okhttp);
		initView();
	}

	private void initView() {
		// TODO 初始化布局
		tvOk = (TextView) findViewById(R.id.tv_ok);
	}

	public void btOk(View v) throws IOException {
		new Thread(new Runnable() {            //因为网络请求是耗时操作,所以要开启一个子线程,放在子线程中请求。
			@Override
			public void run() {
				LogUtil.debug(getClass(), "btOk::::::::::::::::::");
				// TODO 在线程中请求网络
				client = new OkHttpClient();
//这里就开始了,实例化对象,
                  
				String url = "http://www.weather.com.cn/adat/cityinfo/101190404.html";                    //请求设置
				Request request = new Request.Builder().url(url).build();
                
				try {

					response = client.newCall(request).execute();
					if (response.isSuccessful()) {
						// 返回数据
						responseOk = response.body().string();
						LogUtil.debug(getClass(), "网络返回数据:::::::::::"+responseOk);
					}
				} catch (IOException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			}
		}).start();
		tvOk.setText(responseOk+"");
	}
}

  看着很简单吧。网上也有很多例子,这里只做一下简单的操作,不让自己落伍,不做深入研究。用的时候再好学习下。

时间: 2024-12-28 20:44:20

android-Okhttp初步使用的相关文章

Android OkHttp完全解析 是时候来了解OkHttp了

Android OkHttp完全解析 是时候来了解OkHttp了

Android OkHttp与物理存储介质缓存:DiskLruCache(2)

 Android OkHttp与物理存储介质缓存:DiskLruCache(2) 本文在附录文章8,9的基础之上,把Android OkHttp与DiskLruCache相结合,综合此两项技术,实现基于OkHttp的物理存储介质缓存DiskLruCache. 用一个完整的例子加以说明.该例子的代码要实现这样的过程:代码启动后,要往一个ImageView里面加载一张网络图片,首先检查DiskLruCache是否已经存在该图片的缓存,如果存在,则直接复用缓存,如果不存在则使用OkHttp把图片异

(转)Android OkHttp完全解析 是时候来了解OkHttp了

转载自: Android OkHttp完全解析 是时候来了解OkHttp了 一.概述 最近在群里听到各种讨论okhttp的话题,可见okhttp的口碑相当好了.再加上Google貌似在6.0版本里面删除了HttpClient相关API,对于这个行为不做评价.为了更好的在应对网络访问,学习下okhttp还是蛮必要的,本篇博客首先介绍okhttp的简单使用,主要包含: 一般的get请求一般的post请求基于Http的文件上传文件下载加载图片支持请求回调,直接返回对象.对象集合支持session的保持

RxAndroid+RxJava+Gson+retrofit+okhttp初步搭建android网络请求框架

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px ".PingFang SC"; color: #454545 } span.s1 { font: 12.0px "Helvetica Neue" } 新建工程集成,工具集成 一.集成 RxAndroid+RxJava git官网 https://github.com/ReactiveX/RxAndroid Gson git官网 https://github.co

Android OkHttp

第一次听说OkHttp是工作中,组长推荐用这个替代常用的HttpUrlConnection或者HttpClient.于是乎,我就浅阅了OkHttp的介绍,才发现又是Square的作品(工作中写的App所用到的Lib几乎全部被Square承包了). 要想深入理解OkHttp,那当然是读他的原文介绍.我这只是用通俗的语言对他做简单翻译~ OkHttp的好处: 1.通过Http/2和SPDY协议,支持对于同一个Host的所有请求共享一个Socket; SPDY是一个好东西.是由Google推出的一套协

Android OkHttp 讲解

首先介绍okhttp的简单使用: 一般的get请求 一般的post请求 基于Http的文件上传 文件下载 加载图片 支持请求回调,直接返回对象.对象集合 支持session的保持 于Android Studio可以选择添加依赖 compile 'com.squareup.okhttp:okhttp:2.4.0' compile 'com.squareup.okio:okio:1.5.0' (一)Http Get //创建okHttpClient对象 OkHttpClient mOkHttpCli

Android OkHttp详解

来源 http://frodoking.github.io/2015/03/12/android-okhttp/ 编辑推荐:稀土掘金,这是一个针对技术开发者的一个应用,你可以在掘金上获取最新最优质的技术干货,不仅仅是Android知识.前端.后端以至于产品和设计都有涉猎,想成为全栈工程师的朋友不要错过! Android为我们提供了两种HTTP交互的方式:HttpURLConnection 和 Apache HTTP Client,虽然两者都支持HTTPS,流的上传和下载,配置超时,IPv6和连接

Android OkHttp文件上传与下载的进度监听扩展

相信大家对OkHttp也是相当的熟悉了,毕竟是Square的东西,对于其种种优点,这里也不再叙说.优秀是优秀,但是毕竟优秀的东西给我们封装了太多,那么问题来了,我们使用OkHttp作为我们的网络层,简单地进行GET/POST请求是毫无问题.近日看了产品的设计稿,毛估估会有文件的上传与下载的需求,如果使用OkHttp作为网络层进行封装,你会惊讶的发现,简直封装的太"完美"了.如果现在有这么一个需求,要求对文件进行上传或下载,但是在上传或者下载前,你需要给用户一个友好的提示,在上传或者下载

[转] Android OkHttp完全解析 是时候来了解OkHttp了

http://blog.csdn.net/lmj623565791/article/details/47911083: 本文出自:[张鸿洋的博客] 一.概述 最近在群里听到各种讨论okhttp的话题,可见okhttp的口碑相当好了.再加上Google貌似在6.0版本里面删除了HttpClient相关API,对于这个行为不做评价.为了更好的在应对网络访问,学习下okhttp还是蛮必要的,本篇博客首先介绍okhttp的简单使用,主要包含: 一般的get请求 一般的post请求 基于Http的文件上传

Android OkHttp使用与分析

安卓开发领域,很多重要的问题都有了很好的开源解决方案,例如网络请求 OkHttp + Retrofit 简直就是不二之选."我们不重复造轮子不表示我们不需要知道轮子该怎么造及如何更好的造!",在用了这些好轮子将近两年之后,现在是时候拆开轮子一探究竟了.本文基于 OkHttp 截至 2016.7.11 的最新源码对其进行了详细分析. 1,整体思路 从使用方法出发,首先是怎么使用,其次是我们使用的功能在内部是如何实现的,实现方案上有什么技巧,有什么范式.全文基本上是对 OkHttp 源码的