博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android/Java网络加载框架Retrofit(一)初识
阅读量:7234 次
发布时间:2019-06-29

本文共 2504 字,大约阅读时间需要 8 分钟。

Android/Java网络加载框架Retrofit(一)初识
Retrofit是Square针对Android网络I/O设计的一套框架。Square官方介绍Retrofit:“A type-safe HTTP client for Android and Java”。Retrofit 2底层基于OkHttp实现,OkHttp依然是Square针对网络请求设计的一整套解决方案。Retrofit是基于Okhttp的一套RESTful http网络请求框架封装。Retrofit在github上的开源项目地址是:https://github.com/square/retrofit  
给出一个Retrofit网络加载简例,该简例实现一个简单的功能,从一个网络链接地址下载一张图片设置到ImageView里面。注意链接的拼接和注解使用。

上层Java代码:

package zhangphil.http;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.util.Log;import android.widget.ImageView;import okhttp3.ResponseBody;import retrofit2.Call;import retrofit2.Callback;import retrofit2.Response;import retrofit2.Retrofit;import retrofit2.http.GET;import retrofit2.http.Path;public class MainActivity extends AppCompatActivity {    private Call
mCall; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); final ImageView imageView = (ImageView) findViewById(R.id.image); Retrofit mRetrofit = new Retrofit.Builder() .baseUrl("https://www.baidu.com/") .build(); MyRetrofitService mRetrofitService = mRetrofit.create(MyRetrofitService.class); mCall = mRetrofitService.getImagesByName("bd_logo1.png"); Log.d("请求的网络链接", String.valueOf(mCall.request().url())); mCall.enqueue(new Callback
() { @Override public void onResponse(Call
call, Response
response) { try { byte[] bytes = response.body().bytes(); Bitmap bmp = BitmapFactory.decodeByteArray(bytes, 0, bytes.length); imageView.setImageBitmap(bmp); } catch (Exception e) { e.printStackTrace(); } } @Override public void onFailure(Call
call, Throwable t) { t.printStackTrace(); } }); } @Override protected void onDestroy() { super.onDestroy(); mCall.cancel(); } private interface MyRetrofitService { @GET("img/{picName}") Call
getImagesByName(@Path("picName") String picName); }}

代码运行结果logcat输出:

10-16 11:21:29.685 6145-6145/zhangphil.http D/请求的网络链接: https://www.baidu.com/img/bd_logo1.png

不要忘记网络权限:

转载地址:http://bglfm.baihongyu.com/

你可能感兴趣的文章
Hibernate Criterion
查看>>
AFNetworking 使用方法(2.0)
查看>>
React Canvas:高性能渲染 React 组
查看>>
Mono产品生命周期
查看>>
FetchType与FetchMode的区别
查看>>
GCD && Run Loops学习笔记
查看>>
SQLite Learning、SQL Query Optimization In Multiple Rule
查看>>
[ios]sqlite轻量级数据库学习连接
查看>>
它们的定义ListView,实现Item除去滑动和滑出菜单效果
查看>>
2015第我35周三
查看>>
Web前端研发工程师编程能力飞升之路
查看>>
C#编程总结(十)字符转码
查看>>
linux gcc头文件搜索路径
查看>>
对线程的理解
查看>>
更改linux swappiness 提高物理内存使用率
查看>>
J-Link GDB Server Command
查看>>
如何用.NET生成二维码?
查看>>
C++一个简单的手柄类模板
查看>>
The Water Problem(排序)
查看>>
atitit.无线上网卡 无法搜索WiFi 解决无线路由器信号不能被连接
查看>>