学retrofit2所踩之坑

有大半年没有搞的Android了,这几天重拾Android的,发现这个retrofit2网络框架很强大,灵活,自己看官方文档捣鼓里面的内容官方文档,里面的内容通俗易懂,开始的第一步,引入所需jar

implementation 'com.squareup.retrofit2:retrofit:2.1.0'
    implementation 'com.squareup.retrofit:converter-gson:2.0.0-beta2'

当使用聚合的接口测试时,

http://v.juhe.cn/weixin/query?key=b90904286fe3f9c20f6929f2023a62a3

在类中接口是这样定义的

@GET("query/key={key}")
Call<ResponseBody> getBlog(@Path("key") String  key);

这样写会报一个错误

URL query string "key={key}" must not have replace block. For dynamic query parameters use @Query.

这个是因为我们的接口后面跟着的是查询参数,path是跟路径不参与参数的携带故,下面这种写法:

@GET("query")
Call<ResponseBody> getBlog(@Query("key") String  key);

 Retrofit Retrofit = new Retrofit.Builder().baseUrl("http://v.juhe.cn/weixin/").build();
        BlogService BlogService = Retrofit.create(BlogService.class);
        Call<ResponseBody> call = BlogService.getBlog("b90904286fe3f9c20f6929f2023a62a3");
        // 用法和OkHttp的call如出一辙,
        // 不同的是如果是Android系统回调方法执行在主线程
        call.enqueue(new Callback<ResponseBody>() {
            @Override
            public void onResponse(Call<ResponseBody> call, Response<ResponseBody> response) {
                try {
                    textid.setText(response.body().string());
                    System.out.println(response.body().string());
                } catch (IOException e) {
                    e.printStackTrace();
                }


            }

            @Override
            public void onFailure(Call<ResponseBody> call, Throwable t) {

            }
        });


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值