一、GET请求列表数据展示

添加依赖

dependencies {compile 'com.squareup.picasso:picasso:2.5.2'compile 'com.squareup.retrofit2:retrofit:2.0.2'compile 'com.squareup.retrofit2:converter-gson:2.0.0-beta3'
}

item.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="horizontal"><ImageViewandroid:id="@+id/item_image"android:layout_width="70dp"android:layout_height="70dp" /><LinearLayoutandroid:layout_width="0dp"android:layout_height="wrap_content"android:orientation="vertical"android:layout_weight="1"><TextViewandroid:id="@+id/item_title"android:layout_width="match_parent"android:layout_height="wrap_content"android:textAppearance="@android:style/TextAppearance.Large"/><TextViewandroid:layout_width="match_parent"android:layout_height="wrap_content"android:id="@+id/item_info"android:maxLines="2"android:ellipsize="end"/></LinearLayout>
</LinearLayout>

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayoutxmlns: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="com.administrator.picassodemo.MainActivity"><ListViewandroid:id="@+id/main_list"android:layout_width="match_parent"android:layout_height="match_parent"></ListView></android.support.constraint.ConstraintLayout>

数据实体类

Cook.java

package com.administrator.picassodemo;import com.google.gson.annotations.SerializedName;/*** Created by Administrator on 2018/5/16.*/public class Cook {@SerializedName("id")private int id;@SerializedName("name")private String name;@SerializedName("food")private String food;@SerializedName("img")private String img;@SerializedName("images")private String images;@SerializedName("description")private String description;@SerializedName("keywords")private String keywords;@SerializedName("message")private String message;@SerializedName("count")private int count;@SerializedName("fcount")private int fcount;@SerializedName("rcount")private int rcount;public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getFood() {return food;}public void setFood(String food) {this.food = food;}public String getImg() {return img;}public void setImg(String img) {this.img = img;}public String getImages() {return images;}public void setImages(String images) {this.images = images;}public String getDescription() {return description;}public void setDescription(String description) {this.description = description;}public String getKeywords() {return keywords;}public void setKeywords(String keywords) {this.keywords = keywords;}public String getMessage() {return message;}public void setMessage(String message) {this.message = message;}public int getCount() {return count;}public void setCount(int count) {this.count = count;}public int getFcount() {return fcount;}public void setFcount(int fcount) {this.fcount = fcount;}public int getRcount() {return rcount;}public void setRcount(int rcount) {this.rcount = rcount;}
}

返回的数据有集合数据,所以建立集合数据实体类

Tngou.java

package com.administrator.picassodemo;import com.google.gson.annotations.SerializedName;import java.util.List;/*** Created by Administrator on 2018/5/16.*/public class Tngou {@SerializedName("status")private boolean status;@SerializedName("total")private int total;@SerializedName("tngou")private List<Cook> list;public boolean isStatus() {return status;}public void setStatus(boolean status) {this.status = status;}public int getTotal() {return total;}public void setTotal(int total) {this.total = total;}public List<Cook> getList() {return list;}public void setList(List<Cook> list) {this.list = list;}
}

建立数据加载适配器

MyAdapter.java

package com.administrator.picassodemo;import android.content.Context;
import android.support.annotation.Nullable;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;import com.squareup.picasso.Picasso;import java.util.Collection;
import java.util.List;/*** Created by Administrator on 2018/5/16.*/public class MyAdapter extends BaseAdapter {private Context context;private List<Cook> list;public MyAdapter(Context context, List<Cook> list) {this.context = context;this.list = list;}@Overridepublic int getCount() {return list.size();}@Overridepublic Object getItem(int position) {return list.get(position);}@Overridepublic long getItemId(int position) {return list.get(position).getId();}@Overridepublic View getView(int position, View convertView, ViewGroup parent) {if(convertView == null){convertView = LayoutInflater.from(context).inflate(R.layout.item,parent,false);}ViewHolder holder = (ViewHolder)convertView.getTag();Cook cook = list.get(position);holder.title.setText(cook.getName());holder.info.setText(cook.getDescription());Picasso.with(context).load("http://tnfs.tngou.net/img"+cook.getImg()).into(holder.image);return convertView;}public void addAll(Collection<? extends Cook> collection){list.addAll(collection);notifyDataSetChanged();}public static class ViewHolder{private  ImageView image;private TextView title;private TextView info;public ViewHolder(View item) {image = (ImageView)item.findViewById(R.id.item_image);title = (TextView)item.findViewById(R.id.item_title);info = (TextView)item.findViewById(R.id.item_info);}}}

建立接口文件

Service.java

package com.administrator.picassodemo;import retrofit2.Call;
import retrofit2.http.GET;
import retrofit2.http.Path;
import retrofit2.http.Query;/*** Created by Administrator on 2018/5/16.*/public interface Service {@GET("/api/{category}/list")//大括号内传参数,如果连接变化只存在一个参数区别,则改变传入参数即可Call<Tngou> getList(@Path("category") String category,@Query("id") int id, @Query("page") int page, @Query("rows")  int rows);
}

MainActivity.java

package com.administrator.picassodemo;import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.ListView;
import android.widget.TextView;import java.util.ArrayList;
import java.util.List;import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.GsonConverterFactory;
import retrofit2.Response;
import retrofit2.Retrofit;public class MainActivity extends AppCompatActivity implements Callback<Tngou> {private MyAdapter adapter;private TextView mTextView;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);mTextView = findViewById(R.id.tvContent);//addConverterFactory()解析下载数据Retrofit retrofit = new Retrofit.Builder().baseUrl("http://www.tngou.net").addConverterFactory(GsonConverterFactory.create()).build();Service service = retrofit.create(Service.class);Call<Tngou> call = service.getList("cook",0,1,20);
//         Call<Tngou> call = service.getList("top",0,1,20);call.enqueue(this);ListView listView = (ListView)findViewById(R.id.main_list);adapter = new MyAdapter(this,new ArrayList<Cook>());listView.setAdapter(adapter);}@Overridepublic void onResponse(Call<Tngou> call, Response<Tngou> response) {List<Cook> list = response.body().getList();}@Overridepublic void onFailure(Call<Tngou> call, Throwable t) {t.printStackTrace();}
}

二、POST请求xml解析

添加依赖

dependencies {compile 'com.squareup.retrofit2:retrofit:2.0.2'compile 'com.squareup.retrofit2:converter-gson:2.0.0-beta3'compile('com.squareup.retrofit2:converter-simplexml:2.0.0-beta4') {exclude group: 'xpp3', module: 'xpp3'exclude group: 'stax', module: 'stax-api'exclude group: 'stax', module: 'stax'}
}

AndroidManifest.xml中添加网络访问权限

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

Channel.java

package com.administrator.xmldemo;import org.simpleframework.xml.Element;
import org.simpleframework.xml.ElementList;
import org.simpleframework.xml.Path;
import org.simpleframework.xml.Root;import java.util.List;/*** Created by Administrator on 2018/5/17.*/
@Root(strict = false)//是否严格检查
public class Channel {@Path("channel")@Element(name = "title")private String title;@Path("channel")@ElementList(entry = "item",inline = true)private List<item> list;public String getTitle() {return title;}public void setTitle(String title) {this.title = title;}public List<item> getList() {return list;}public void setList(List<item> list) {this.list = list;}
}

Item.java

package com.administrator.xmldemo;import org.simpleframework.xml.Element;
import org.simpleframework.xml.Root;/*** Created by Administrator on 2018/5/17.*/
@Root(strict = false)
public class Item {@Element(name = "title")private String title;
}

Service.java

package com.administrator.xmldemo;import retrofit2.Call;
import retrofit2.http.GET;/*** Created by Administrator on 2018/5/17.*/public interface Service {@GET("/protal.php?mod=rss&catid=")Call<Channel> getChannel();
}

MainActivity.java

package com.administrator.xmldemo;import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response;
import retrofit2.Retrofit;
import retrofit2.converter.simplexml.SimpleXmlConverterFactory;public class MainActivity extends AppCompatActivity implements Callback<Channel> {private static final String TAG = "MainActivity";@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);Retrofit retrofit = new Retrofit.Builder().baseUrl("http://www.inexus.co").addConverterFactory(SimpleXmlConverterFactory.create()).build();Service service = retrofit.create(Service.class);Call<Channel> channel = service.getChannel();channel.enqueue(this);}@Overridepublic void onResponse(Call<Channel> call, Response<Channel> response) {Channel channel = response.body();Log.e(TAG,String.valueOf(response.body()));}@Overridepublic void onFailure(Call<Channel> call, Throwable t) {}
}

Retrofit框架(二)相关推荐

  1. java二次封装_基于OKhttp+Rxjava2+Retrofit进行二次封装

    概述 基于Retrofit进行二次封装,优雅的初始化设置.基于Okhttp拦截器和基础缓存,封装了无网络和其他所有场景的缓存策略支持,以及频繁调用请求的丢弃策略. 特性 1.基于Retrofit的二次 ...

  2. Jersey框架二:Jersey对JSON的支持

    Jersey系列文章: Jersey框架一:Jersey RESTful WebService框架简介 Jersey框架二:Jersey对JSON的支持 Jersey框架三:Jersey对HTTPS的 ...

  3. Java开源 J2EE框架(二)

    Java开源 J2EE框架(二) 2007-01-06 12:34 Jofti [Java开源 其它开源项目] Jofti可对在缓存层中(支持EHCache,JBossCache和OSCache)的对 ...

  4. [LINQ2Dapper]最完整Dapper To Linq框架(二)---动态化查询

    目录 [LINQ2Dapper]最完整Dapper To Linq框架(一)---基础查询 [LINQ2Dapper]最完整Dapper To Linq框架(二)---动态化查询 [LINQ2Dapp ...

  5. pytest框架二次开发之自定义注解

    目录 一.背景: 二.闭包与装饰器(可以跳过这一章) 2.1 .什么是闭包 2.2 闭包的用途 2.3 .装饰器(decorator) 三.pytest自定义注解@author 3.1 自定义注解@a ...

  6. 胖虎谈ImageLoader框架(二)

    前言 从学校出来的这半年时间,发现很少有时间可以静下来学习和写博文了,为了保持着学习和分享的习惯,我准备之后每周抽出一部分时间为大家带来一个优秀的Android框架源码阅读后的理解系列博文. 期许:希 ...

  7. Spring框架(二)

    Spring框架(二) 一.控制反转IOC和依赖注入DI 控制反转和依赖注入是对同一件事情的不同描述,从某个方面讲,就是它们描述的角度不同.控制反转是说不需要程序员管理和控制bean,是解耦的目的,而 ...

  8. 利用jspxcms框架二次开发遇到的问题

    发版之后里面的文件丢失问题 要在一个利用jspxcms框架二次开发的项目里添加新功能,拉下来代码加上新功能之后,把项目打成war包,放到服务器上重新启动,后来有别的开发人员告诉我,他以前上传的文件和一 ...

  9. retrofit框架学习(二)----retrofit封装

    retrofit 的封装 前言 上一篇文章的链接 http://blog.csdn.net/qq_26296197/article/details/78011188 1 上一篇文章讲到Retrofit ...

最新文章

  1. 【全文】Libra回应质疑:Facebook将放弃控制权,不与主权货币竞争
  2. cocos2d-x触摸事件优先级
  3. vsftpd 与TCP_wrapper 结合限制用户的ip地址登录
  4. Dicom 学习笔记-Dicom 消息服务(DIMSE-C/DIMSE-N)
  5. 基于HTML5 WebGL实现 json工控风机叶轮旋转
  6. (HDU)1019 --Least Common Multiple(最小公倍数)
  7. linux那些事之page cache
  8. Linux rm , cp, mv 命令
  9. PageAdmin网站建设教程:仿58同城站群系统实现不同地区Ip跳转不同分站
  10. 分布式唯一id生成器的想法
  11. js基础-(一)-基本数据类型
  12. visio反向工程 mysql_Visio 2010对MySQL数据库反向工程生成ER数据库模型图
  13. spark机器学习 源码解析及原理分析
  14. 聚合支付备案最全机构名单及分析(截至22年1月7日)
  15. SpringBoot整合WebSocket案例
  16. 2007年5月12日,地坛书市
  17. 手机软件设计大赛报名信息
  18. 小县城开什么店比较挣钱?
  19. 悬浮细胞、淋巴细胞培养常见失败原因及解决方案
  20. R6034问题的解决

热门文章

  1. 如何设计QQ好友系统
  2. 【华为OD机试真题 Java】几何平均值最大的子数组(100%通过+全网最详细注释)
  3. 持续集成之消息推送:钉钉与企业微信的群聊机器人通用示例
  4. layUI 图片预览
  5. 互联网晚报 | 11月5日 星期五 | 中国移动A股IPO成功过会;腾讯会议用户数近2亿;荣耀智能制造产业园首次亮相...
  6. 百胜系统连接服务器失败,MySQL服务器无法在百胜升级后启动
  7. 山东丝网除沫器-临沂丝网除沫器-不锈钢丝网除沫器--[品牌推荐]
  8. 【Figma学习】图标制作
  9. asterisk srtp
  10. 在Carla中创建车辆及传感器