有阵子没临幸Android了,打算熟悉熟悉Andorid,故有了本次对Retrofit2入门练习,记录之。

场景

  • 保存以及获取用户信息

客户端

  • 添加retrofit2依赖
implementation 'com.squareup.retrofit2:retrofit:2.4.0'implementation 'com.squareup.retrofit2:converter-gson:2.4.0'
  • 新建User实体
private String name;private String code;private String sex;`private String address;
  • 新建获取用户的service 接口:
@GET("Info/{name}")Call userInfo(@Path("name") String name);
  • 页面

     

     

  • 保存和获取用户信息核心代码

           //创建实例            Retrofit retrofit = new Retrofit.Builder()              .baseUrl("http://10.0.4.52:8080/User/")              .addConverterFactory(GsonConverterFactory.create());              .build();            service = retrofit.create(UserService.class);            //获取用户信息            Call userCall = service.userInfo(getname.getText().toString());                userCall.enqueue(new Callback() {                    @Override                    public void onResponse(Call call, Response response) {                       Log.i("TAG",response.body().toString());                    }                    @Override                    public void onFailure(Call call, Throwable t) {                    }                });             //保存用户信息                User user=new User();                user.setAddress(address.getText().toString());                user.setName(name.getText().toString());                user.setSex(sex);                Call save = service.save(user);                save.enqueue(new Callback() {                    @Override                    public void onResponse(Call call, Response response) {                    }                    @Override                    public void onFailure(Call call, Throwable t) {                    }                });

后端

  • 获取和保存用户信息Controller部分代码
@RestController@RequestMapping("/User/")public class UserController {    @Autowired    private UserDao userDao;    /***     * 根据用户名获取用户信息     * @param name     * @return     */    @GetMapping("/Info/{name}")    public User getUserInfo(@PathVariable("name") String name) {        return userDao.findUserByName(name);    }    /***     * b保存用户     * @param user     * @return     */    @PostMapping("/Save")    public User save(@RequestBody User user){        Date date=new Date();        user.setCode(date.getTime()+user.getName());        userDao.save(user);        return user;    }}
  • 数据库是mysql数据库 并且已经springboot 自建表成功

     

     

启动测试

保存:

 

 

查询数据库

 

 

获取用户:

控制台打印获取用户信息

 

 

中途遇到的问题:

  1. 客户端报错
Could not locate ResponseBody xxx Tried: * retrofit.BuiltInConverters

因为service中:

Call userInfo(@Path("name") String name);

使用了实体类接收,所以一定要加上转实体依赖:

    implementation 'com.squareup.retrofit2:converter-gson:2.4.0'

Retrofit链中加上即可

    .addConverterFactory(GsonConverterFactory.create()) 

更多相关文章

  1. Android获取系统时间以及网络时间
  2. android开发学习笔记(一)分别通过GET和POST请求从服务器端获取数
  3. android http3 下篇
  4. android 实现listView异步加载图片
  5. Android开发学习之电话、短信、联系人
  6. Android调用系统图库获取图片
  7. 高德地图-根据经纬度获取地址(逆地理编码)
  8. android getFragmentManager、getSupportFragmentManager、getCh
  9. Android开发入门之网络通信(网页源码查看器)

随机推荐

  1. android:layout_weight的真实含义
  2. Android指纹登录工具类封装
  3. Android基础笔记(七)-页面跳转和数据传递
  4. Android(安卓)弹出软键盘android:windowS
  5. Android 多渠道定制化打包
  6. 如何在Android智能手机上捕获数据包
  7. android sdk 安装时无法连接到地址
  8. 《第一行代码(第二版)》学习(二)
  9. android中gravity和layoutgravity的区别
  10. Android入门之Activity的四种启动模式