一首先下载Jar包

https://github.com/square/okhttp

如果使用android studio只需要加入依赖

compile 'com.squareup.okhttp3:okhttp:3.2.0'

二--下载一张图片并显示

使用的是hanlder的方式

package com.liunan.okhttpdemo2;

import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Handler;
import android.os.Message;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageView;
import android.widget.Toast; import java.io.IOException;
import java.io.InputStream; import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
import okhttp3.ResponseBody; public class MainActivity extends AppCompatActivity { private static final int ERROR = 1;
private static final int SUCCESS = 2 ;
private String url = "http://192.168.1.102:8080/img/a.jpg";
private ImageView mIv; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView(); } private Handler handler = new Handler(){
@Override
public void handleMessage(Message msg) {
switch (msg.what){
case SUCCESS:
mIv.setImageBitmap((Bitmap) msg.obj);
break; case ERROR: Toast.makeText(MainActivity.this, "请求超时", Toast.LENGTH_SHORT).show(); break;
}
}
}; /**
* 初始化 组件
*/
private void initView() { mIv = (ImageView) findViewById(R.id.main_iv);
} /**
* 点击获取图片
*/
public void getPic(View v){ new Thread(){
@Override
public void run() {
//获取okHttp对象get请求, try {
OkHttpClient client = new OkHttpClient(); //获取请求对象
Request request = new Request.Builder().url(url).build(); //获取响应体 ResponseBody body = client.newCall(request).execute().body(); //获取流
InputStream in = body.byteStream();
//转化为bitmap
Bitmap bitmap = BitmapFactory.decodeStream(in); //使用Hanlder发送消息
Message msg = Message.obtain(); msg.what = SUCCESS;
msg.obj = bitmap; handler.sendMessage(msg); } catch (IOException e) {
e.printStackTrace();
//失败
Message msg = Message.obtain();
msg.what = ERROR; handler.sendMessage(msg);
} }
}.start();
} }

也可以把网络请求写为一个工具类,

package com.liunan.okhttpdemo2;

import java.io.IOException;
import java.io.InputStream; import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response; /**
* Created by 刘楠 on 2016-03-27.
*/
public class OkHttpUtils { OkHttpClient client = new OkHttpClient(); /**
* 获取流
* @param url 请求地址
* @return 输入流
*/
public InputStream getInpuStream(String url) throws IOException {
//设置 请求
Request request = new Request.Builder()
.url(url).build(); //获取行响应 InputStream in = client.newCall(request).execute().body().byteStream(); return in; } /**
* 返回字符串
* @param url
* @return 返回字符串
* @throws IOException
*/
public String getString(String url) throws IOException {
//设置 请求
Request request = new Request.Builder()
.url(url).build(); //获取行响应 Response response = client.newCall(request).execute(); return response.body().string(); } }

get方式

安卓学习----使用okHttp(get方式)---下载图片的更多相关文章

  1. 安卓学习----使用okHttp(POST方式)---登录

    工具类 package com.liunan.okhttpdemo3post.Utils; import java.io.IOException; import okhttp3.MediaType; ...

  2. 安卓学习之路 -- JAVA多线程下载

    代码没有优化,暂时先实现结果 package download; import java.io.File; import java.io.InputStream; import java.io.Ran ...

  3. 前端下载图片的N种方法

    前几天一个简单的下载图片的需求折腾了我后端大佬好几天,最终还是需要前端来搞,开始说不行的笔者最后又行了,所以趁着这个机会来总结一下下载图片到底有多少种方法. 先起个服务 使用expressjs起个简单 ...

  4. Java学习笔记——File类之文件管理和读写操作、下载图片

    Java学习笔记——File类之文件管理和读写操作.下载图片 File类的总结: 1.文件和文件夹的创建 2.文件的读取 3.文件的写入 4.文件的复制(字符流.字节流.处理流) 5.以图片地址下载图 ...

  5. 从url下载图片--java与python实现方式比较

    从url下载图片--java与python实现方式比较 博客分类: 技术笔记小点滴 javapython图片下载  一.java的实现方式 首先读取图片 //方式一:直接根据url读取图片 priva ...

  6. Python学习---网页爬虫[下载图片]

    爬虫学习--下载图片 1.主要用到了urllib和re库 2.利用urllib.urlopen()函数获得页面源代码 3.利用正则匹配图片类型,当然正则越准确,下载的越多 4.利用urllib.url ...

  7. IOS开发-UI学习-根据URL显示图片,下载图片的练习(button,textfield,image view,url,data)

    编写一个如下界面,实现: 1.在文本输入框中输入一个网址,然后点击显示图片,图片显示到UIImageView中. 2.点击下载,这张显示的图片被下载到手机的Documents文件夹下的Dowmload ...

  8. Java学习笔记——IO操作之以图片地址下载图片

    以图片地址下载图片 读取给定图片文件的内容,用FileInputStream public static byte[] mReaderPicture(String filePath) { byte[] ...

  9. Python下载图片并保存本地的两种方式

    一:使用Python中的urllib类中的urlretrieve()函数,直接从网上下载资源到本地,具体代码: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 ...

随机推荐

  1. Python快速教程 尾声

    作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 写了将近两年的Python快速教程,终于大概成形.这一系列文章,包括Python基 ...

  2. C#:根据银行卡卡号判断银行名称

    原文地址:android 根据银行卡卡号判断银行 原文是 java ,现在将它翻译成 C# ,并对代码重新编排整理,博主是一个今年刚出来的应届毕业生,不足之处请多多包涵. 根据银行卡号判断所属银行,依 ...

  3. iOS对象属性详解

    oc对象的一些属性: retain,strong, copy,weak,assign,readonly, readwrite, unsafe_unretained 下面来分别讲讲各自的作用和区别: r ...

  4. IEE重建表完全释放磁盘空间具体步骤参考

    环境:RHEL 5.3 + IEE 5.1.40 本文目的:指导项目侧人员再遇到此类改动需求时可以自己更改.需求:mr_intrainterfreq表重建,历史数据全部删掉. 1.停库: 1.1确认现 ...

  5. Android四大组件之一“广播”

    前言 Android四大组件重要性已经不言而喻了,今天谈谈的是Android中的广播机制.在我们上学的时候,每个班级的教室里都会装有一个喇叭,这些喇叭都是接入到学校的广播室的,一旦有什么重要的通知,就 ...

  6. 创建ASP.NET Core MVC应用程序(2)-利用MySQL Connector NET连接到MySQL

    创建ASP.NET Core MVC应用程序(2)-利用MySQL Connector NET连接到MySQL 用惯.NET的研发人员都习惯性地使用SQLServer作为数据库.然而.NET Core ...

  7. 第三方登录插件.NET版XY.OAuth-CSharp

    XY.OAuth-CSharp GitHub:XY.OAuth-CSharp OSChina:XY.OAuth-CSharp 第三方登录插件.NET版 使用 首先,从NuGet上安装"XY. ...

  8. 为jQuery写插件

    很多场合,我们都会调用jQuery的插件去完成某个功能,比如slider. 如下图,做一个div,通过“$( "#slider" ).slider();”的方式直接将div变成sl ...

  9. IBC编程社区

    IBC编程社区-.NET编程交流论坛 官方地址:http://www.ibcibc.com 新浪微博:IBC编程社区 微信公众号:ibcbcsq QQ一群:235371874(已满) QQ二群:248 ...

  10. 学习笔记之-------UIScrollView 基本用法 代理使用

    //contentSize.contentInset和contentOffset 是 scrollView三个基本的属性. // 滚动 self.ScrollView.contentSize =sel ...