Rotrofit的简单使用

赏金猎人 立即下载

加入Rotrofit类库
compile ‘com.android.support:appcompat-v7:25.1.0’
compile ‘com.squareup.retrofit2:retrofit:2.0.1’
compile ‘com.squareup.retrofit2:converter-gson:2.2.0’//json转换器
compile ‘com.squareup.picasso:picasso:2.5.2’//加载图片
compile ‘com.squareup.retrofit2:adapter-rxjava2:2.2.0’//支持Rxjava调用
compile ‘io.reactivex.rxjava2:rxandroid:2.0.1’//Rxjava增加对android支持
compile ‘io.reactivex.rxjava2:rxjava:2.0.7’//Rxjava异步请求库

定义一个接口
public interface Isenond {

 //  @POST("")
//  @FormUrlEncoded//post请求需要加上这句@Field提交注解参数
//  Call<ResuteBean> getList(@Path("categroe") String categroe, 
@Field("id") int id,@Field("name") int name, @Field("row") int row);
暂时只用了get请求 @Query传递查询参数注解
@GET("/api/{categroe}/list")//get请求拼接baseurl的url {categroe}是可以动态替换的url参数
Call<ResuteBean> getList(@Path("categroe") String categroe,
 @Query("id") int id,  @Query("name") int name, @Query("row") int row);
}
public class seconActivity extends AppCompatActivity {
private ListView listView;
private List<ResuteBean.TngouBean>list1=new ArrayList<ResuteBean.TngouBean>();
private ThreeAdapter adapter;

@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.seconlayout);
       listView= (ListView) findViewById(R.id.listview);
    adapter = new ThreeAdapter(list1,this);
    listView.setAdapter(adapter);
    Retrofit retrofit = new Retrofit.Builder()
            .baseUrl("http://www.tngou.net")
            .addConverterFactory(GsonConverterFactory.create())//加入json自动转换工厂
            .build();
    Isenond isenond = retrofit.create(Isenond.class);//拿到接口代理实现类
    Call<ResuteBean> list = isenond.getList("cook",0, 1, 20);//拿到call接口对象
    //Call<ResuteBean> list = isenond.getList("top",0, 1, 20);
          //Response<ResuteBean> execute = list.execute();//同步请求 在子线程中请求最好
    list.enqueue(new Callback<ResuteBean>() {//加入异步队列
        @Override
        public void onResponse(Call<ResuteBean> call, Response<ResuteBean> response) { //String string = response.errorBody().string();//即使错误也可以获取到返回的内容
            List<ResuteBean.TngouBean> tngou = response.body().getTngou();
            adapter.addlist(tngou);
        }

        @Override
        public void onFailure(Call<ResuteBean> call, Throwable t) {
            Toast.makeText(seconActivity.this, "加载数据失败",    Toast.LENGTH_SHORT).show();
        }
    });

}
}
//如果对获取的数据再次进行处理的话可以配合Rxjava使用
将接口文件增加返回类型为Observable
public interface IsFour {
@GET("/api/{categroe}/list")
Observable<ResuteBean> getList(@Path("categroe") String categroe, 
@Query("id") int id, @Query("name") int name, @Query("row") int row);
 }
//第二步
 Retrofit retrofit = new Retrofit.Builder()
            .baseUrl("http://www.tngou.net")
            .addConverterFactory(GsonConverterFactory.create())
            .addCallAdapterFactory(RxJava2CallAdapterFactory.create())
            //为RxJava准备的CallAdapter,它将作为Observable返回。
            .build();
    IsFour four = retrofit.create(IsFour.class);
    four.getList("cook", 0, 1, 20)
            .observeOn(AndroidSchedulers.mainThread())
            //.map()可以再次处理数据
            .subscribe(new Observer<ResuteBean>() {
                @Override
                public void onSubscribe(Disposable d) {

                }

                @Override
                public void onNext(ResuteBean resuteBean) {
                    adapter.addlist(resuteBean.getTngou());//拿到处理的数据显示
                }

                @Override
                public void onError(Throwable e) {

                }

                @Override
                public void onComplete() {

                }
            });

}
ubuntu为Docker配置代理 我们平常在ubuntu终端中使用curl或git命令时,往往会很慢。所以,首先需要给ubuntu终端环境添加代理。查看自身那个软件的端口号,我这里是7890。 阅读详情

相关推荐

VBA学习笔记6:将多个工作表中满足条件的数据汇总到同一个工作表

VBA学习笔记6:将多个工作表中满足条件的数据汇总到同一个工作表

weixin_45355881的博客 4708

新手学习Rotrofit+RxJava网络请求以及Material Design风格

先贴出代码地址吧:https://github.com/Pr-Jiang/NewsAPP 近期,宣讲会也不多了,受 饿了么 sofish 的点醒,确实应该静下心来做点实际的东西。 在寝室一个人,两天半的时间,做了这一个算是比较完整的项目吧。也参考了github上的开源项目进行学习~ 之前只是浅显的看了一些RxJava的文章,这一次实战,也切实体会到了Retrofit+RxJa

Hero_R的博客 2615

Unity 接入HybridCLR的点点滴滴,亲测三平台(PC、Android、WebGL)妥妥的。-问题分享

一入热更深似海啊,没有热更是真恼火啊,干啥啥不方便,动不动就得重新发包;说实在的,也是工作之余研究这个,在原有框架基础上接入这个热更,既要保持原有功能,还要支持热更,实实在在、断断续续搞了这么久,终于是接入并测通了,这一路是坎坎坷坷,下面把走过的弯弯绕绕记录下,希望对后来想接入的小伙伴有帮助吧。

GarFe的博客 1万+

Carson带你学Android:这是一份详细的 Retrofit使用教程(含实例讲解)

前言 在Andrroid开发中,网络请求十分常用 而在Android网络请求库中,Retrofit是当下最热的一个网络请求库 今天,我将献上一份非常详细Retrofit v2.0的使用教程,希望你们会喜欢。 如果对Retrofit v2.0的源码感兴趣,可看文章:Android:手把手带你深入剖析 Retrofit 2.0 源码 目录![目录](http://upload-

Carson带你学Android 25万+

PCB设计必看:铜皮厚度与载流量的黄金比例(附实用对照表)

本文深入探讨了PCB设计中铜皮厚度与载流量的关键关系,提供了实用的对照表和设计技巧。通过分析基础原理、标准选择策略及常见误区,帮助工程师优化PCB设计,确保电路板的可靠性和安全性。特别适用于需要处理大电流或高频应用的电子设计场景。

milk8的博客 512

青龙人形机器人硬件平台设计全解析:从构型到控制系统的实战指南

本文深度解析了青龙人形机器人硬件平台的设计全流程,从需求分析、构型设计到核心系统实现。文章详细阐述了其43个自由度的仿生构型、高动态性下肢设计、灵巧作业系统以及分布式控制架构,并探讨了旋转关节与直线关节等关键技术选型,为开发者提供了从理论到实践的完整硬件设计指南。

weixin_29248313的博客 384

项目中对Rotrofit网络的简易封装

最近学习网络框架的封装,在常用的代码中基本上都是添加相应的依赖包,使用的第三方,方便快捷,但是对技术的深入学习是不可避免的,今天学习一下Retrofit的简易封装.在此贴出来,以后方便使用. 首先建一个RetrofitHelper.java 代码如下: package com.yiju.leal.net; import com.google.gson.Gson; import com

ChatHello的博客 1091

ROS2进程内通信:零拷贝Intra-Process原理与实战

Intra-Process通信是ROS2实现低延迟节点间数据交换的核心机制,其本质是通过C++17智能指针与零拷贝共享内存,在同一进程内绕过序列化、系统调用和上下文切换。相比传统DDS跨进程通信,它将`geometry_msgs::Twist`类消息延迟从42μs降至0.8μs,显著提升机器人实时控制性能。该技术并非自动启用,需满足同执行器、QoS严格匹配、内存所有权明确三大约束,适用于机械臂控制、视觉SLAM、图像处理流水线等对端到端延迟敏感的场景。本文聚焦ROS2原生Intra-Process通讯的原理

weixin_30619101的博客 364

【Android】Retrofit入门详解

简介:大三学生党一枚!主攻Android开发,对于Web和后端均有了解。 个人语录:取乎其上,得乎其中,取乎其中,得乎其下,以顶级态度写好一篇的博客。 Retrofit入门一.Retrofit介绍二.Retrofit注解2.1 请求方法注解2.1.1 GET请求2.1.2 POST请求2.2 标记类注解2.2.1 FormUrlEncoded2.2.2 Multipart2.2.3 Streaming2.3 参数类注解2.3.1 Header和Headers2.3.2 Body2.3.3 Path2.3.4

weixin_43927892的博客 2131

[运营] ext4分区遇到“Structure needs cleaning”问题,怎么解决 - 结构需要清理

摘要:当ext4文件系统出现"Structure needs cleaning"错误时,表明存在元数据损坏。解决方法包括:1)检查系统日志确认错误;2)卸载受影响分区;3)使用fsck.ext4分步骤修复(先测试模式-n,再保守修复-p,严重损坏时用-y强制修复);4)检查修复结果;5)重新挂载。若数据丢失可尝试从lost+found恢复。建议定期备份、避免异常关机并定期检查文件系统,以防硬件故障导致类似问题。修复前务必备份重要数据。

Rudon滨海渔村的博客 1360

【STM32实物】基于STM32的扫地机器人/小车控制系统设计

扫地机器人系统采用分层结构设计,主要包括底层硬件控制层、中间数据处理层和上层用户交互层。底层硬件控制层负责对各个硬件模块进行控制和数据采集,中间数据处理层负责对采集到的数据进行处理和解算,上层用户交互层负责与用户进行交互并显示系统状态信息。

嵌入式阿齐Archie 1万+

Android中异步任务请求网络数据

public class MainActivity extends AppCompatActivity { private TextView text_title; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceStat

ztz的博客 748

基于Simulink的伺服电机位置闭环控制仿真

本文带你从零构建了伺服电机位置闭环控制系统​ 的完整Simulink仿真模型,实现了:✅ 搭建PMSM伺服电机、逆变器、机械臂负载的主电路与编码器反馈模型;✅ 用MATLAB Function实现三环控制(位置环PID、坐标变换、电流环PI);✅ 验证阶跃定位(稳态误差0.002°、响应0.08s)与正弦跟踪(误差0.008°)的高性能;✅ 对比开环控制,明确位置闭环在精度、响应、抗扰上的优势;✅ 理解“三环嵌套+反馈校正”的核心思想(精密定位的工程实现)。核心收获。

amy_mhd的博客 173

Rrtrofit源码解读

Retrofit源码理解

sinnnnnner的博客 334

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

妹子图APP(一)—— Retrofit+Glide+Gson加载网络图片

使用Retrofit+Glide+Gson实现简单的网络图片加载

xhuww的博客 4万+

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

Rxjava(三)--代码实战

如何管理生命周期,防止内存泄漏 常见的运用场景,以及其对应的写法 ???第一个纠结于读要不要开io线程,如果是这样的话,很多操作都得改。 界面才是主线程。 ??? Skipped 1 frames! The application may be doing too much work on its main thread. 到底哪种程度才算正常 https://blog.youkuaiyun.com/cars...

活着就是应该在解放自我 197

httpwebrequest超时时间timeout设置无效_那些年踩过的MySQL wait_timeout参数的坑

MySQL wait_timeout参数修改问题,可能经常会有DBA遇到过,下面就试验一下并看看会有什么现象。wait_timeout分为global级及session级别,如未进行配置,默认值为28800,即8小时。session级(session关键字可省略) global级此处省略对global级 与 session级参数...

weixin_39710003的博客 807

Android Retrofit下载网络图片

RetrofitUtil.getInstance().getImg().enqueue(new Callback() { @Override public void onResponse(Call call, Response response) { //下载网络图片 if (response.isSuccess()) { I

yijiaodingqiankun的博客 3015

MVP实现用Retrofit请求网络数据Fresco加载图片,Recyclerview CheckBox显示并实现全选删除

效果图 和上一个不一样的是这个是用checkbox实现的依赖 compile 'com.jcodecraeer:xrecyclerview:1.3.2' compile 'com.facebook.fresco:fresco:0.11.0' compile 'com.squareup.okhttp3:okhttp:3.9.0' compile 'com.squareup.okio:okio:1

?????? 824

开发第一个网络app遇到的问题

第一阶段开发遇到的问题一、虚拟机网络请求始终出问题二、对于不标准json数据进行处理三、调试过程的一个bug,recyclerView出问题了四、git回退版本五、动态替换retrofit的url六、动态替换json数据的处理方式 一、虚拟机网络请求始终出问题 这个问题已经确定好了,就是虚拟机的网络出现了问题,好像是ip地址不一样什么的,重置一下虚拟机即可解决 java.net.UnknownHostException: Unable to resolve host "www.example.com": N

wresource的博客 342

Rettrofit设计模式

外观模式(门面模式) Retrofit给我们暴露的方法和类不多。核心类就是Retrofit,我们只管配置Retrofit,然后做请求。剩下的事情就跟上层无关了,只需要等待回调。这样大大降低了系统的耦合度。对于这种写法,我们叫外观模式(门面模式)。 几乎所有优秀的开源library都有一个门面。比如Glide.with() ImageLoader.load() Alamofire.request()。有个门面方便记忆,学习成本低,利于推广品牌。 Retrofit的门面就是retrofit.create(

AndroidTalk的博客 2343

Android应用架构之Retrofit使用

Retrofit:Square提供的开源产品,为Android平台的应用提供一个类型安全的REST客户端         https://github.com/square/retrofit RxAndroid:响应式编程框架RxJava针对Android平台的扩展。         https://github.com/ReactiveX/RxAndroid         ht

liuhongwei123888的专栏 10万+

【Android框架篇】Retrofit2.0+RxJava+MVP

近些年很火的Retrofit+RxJava网络请求框架,功能强大,结构合理,使用简单,最近简单研究了一下,结合MVP模式记录一下~ Retrofit retrofit是一款针对Android网络请求的开源框架,它与okhttp一样出自Square公司。Rotrofit2.0的网络框架全部交给了okhttp来实现,Android N之后Apache的httpclient已经被Google从SDK中...

Active的博客 657

Rrtrofit封装框架

1.添加方法: allprojects{ repositroies{ .... maven { url 'https://jitpack.io' } } } dependencies { /*网络请求框架*/ implementation 'com.github.AgnoiY:RetrofitFrame:1.1.9...

Agnoi丶军 344

Retrofit 最简单的快速入门及自己封装

简单介绍及官方文档的坑 官方文档 http://square.github.io/retrofit/ Retrofit是Square公司开发的一款针对Android网络请求的框架,Retrofit2底层基于OkHttp实现的,OkHttp现在已经得到Google官方认可,大量的app都采用OkHttp做网络请求 Retrofit也就成了最火的网络请求框架之一,想着来研究一下Retrofit了…先看了

zhiyuan0932的博客 2万+

Android开源项目 MVP+MD+Retrofit+RxJava 看了你会上瘾的

Android开源项目 MVP+MD+Retrofit+RxJava 看了你会上瘾的前言:去年这个时候独立开发上架了一款APP(应用宝:叙恋),用到的技术都是比较老旧。今年趁着回学校写论文的时间,会陆续将这款APP更改成目前最火热的MVP+MD+Retrofit+RxJava结构。要是你还没学会怎样使用它,怕是要out了。本文只分析源码、实战,请自行百度相关基础知识。猛戳致敬原创 我所理解的RxJ

sinat_27033869的博客 7170
上一篇: drawerlayout配合NavigationView使用
下一篇: 使用picasso加载图片
磊study
博客等级 码龄10年 0粉丝 19原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值