retrofit2 post url拼接设置问题

原创 2016年08月30日 14:12:59

我们用retrofit2.0 请求时最好把log带上,可以很详细的告诉我们出错在哪里,AS里导包

compile 'com.squareup.okhttp3:logging-interceptor:3.3.0'

在请求里添加日志管理

 String BASE_URL = "http://www.xxx.com/test/rest/user/";
HttpLoggingInterceptor logging = new HttpLoggingInterceptor();
logging.setLevel(HttpLoggingInterceptor.Level.BODY);
OkHttpClient client = new OkHttpClient.Builder().addInterceptor(logging).build();

Retrofit retrofit = new Retrofit.Builder()
        .baseUrl(BASE_URL)
        .addConverterFactory(GsonConverterFactory.create())
        .addCallAdapterFactory(RxJavaCallAdapterFactory.create())
        .client(client)
        .build();

@POST设置  2.0后这样会出问题
@POST("/{user}/setDeviceName")
Observable<String> testPost( @Path("user") String user);

测试
api.testPost("test1")
        .subscribeOn(Schedulers.io())
        .observeOn(AndroidSchedulers.mainThread())
        .subscribe(System.out::println, throwable -> {
            System.out.println(throwable.getMessage());
        });
运行log
D/OkHttp: --> POST http://www.xxx.com/test1/setDeviceName http/1.1 

post的url路径怎么变成这样了,按照理解应该是 

http://www.xxx.com/test/rest/user/test1/setDeviceName
@POST里面可以写入一个完整的url,或者用来拼接,看了其他人的博客资料,2.0后base_url要以"/"结尾,@POST @POST等请求不要以“/”开头,然后我把@POST 修改下
@POST("{user}/setDeviceName")
Observable<String> testPost( @Path("user") String user);

结果url拼接了
D/OkHttp: --> POST http://www.xxx.com/beehive/rest/user/test1/setDeviceName http/1.1



相关文章推荐

关于retrofit的Post请求

首先网上的讲解一大堆,这里只是自己当时的问题,或者是接口的问题,现在吧写出来,为了下次使用 为嘛的接口是 http:xxxxx /xxx/xxx 然后需要是post请求 方式是 {“dev”:”x...

Retrofit 常用参数使用方式和Url处理注解汇总(一)

Retrofit 参数方式和Url处理注解汇总Retrofit 参数方式和Url处理注解汇总 请求方式 常用的Url路径处理注解 常见错误状态码请求方式每个函数都必须带有 HTTP 注解来表明请求方式...

Retrofit网络请求框架的基本使用

Retrofit是Square公司开发的一款针对Android网络请求的框架,Retrofit2底层基于OkHttp实现的.来看看它的基本使用方法: 1.定义一个自定义的接口,这里需要稍作说明,@G...

Retrofit2-如何在请求时使用动态URL

原文网址:http://write.blog.csdn.net/postedit?ticket=ST-95882-ne4Elhd3Ebe7jJoJj7k4-passport.csdn.net ...

Retrofit Url 配置

正文开始之前,先说个折腾了2天才搞清楚的事情。如果你用post请求进行提交数据(比如用户注册、登陆等表单类请求),参数类型一定要用准确,是Field,如果选择了Query,而调试过程没有发现这个问题,...
  • jdsjlzx
  • jdsjlzx
  • 2016年06月05日 11:14
  • 13009

Retrofit简单封装使用--Post请求封装请求体、Get请求通过参数、map方式构建url

之前总结过Volley-OkHttpVolley–OkHttp学习博客今天来写写Retrofit的demo,简单封装下Retrofit与okhttp共同出自于Square公司,retrofit就是对o...

Retrofit+RxJava 优雅的处理服务器返回异常、错误

开始本博客之前,请先阅读: Retrofit请求数据对错误以及网络异常的处理 异常&错误实际开发经常有这种情况,比如登录请求,接口返回的 信息包括请求返回的状态:失败还是成功,错误码,User对...
  • jdsjlzx
  • jdsjlzx
  • 2016年07月11日 17:32
  • 33984

Retrofit 2 动态URL

问题使用Retrofit2一般都是针对于一baseURL,其它接口都是拼接不同的参数如get/photo,search?name=xiaohong&&sex=female,这样的形式。但是一些请求此时...

利用Retrofit执行Post、Get请求,通俗易懂

利用Retrofit执行Post、Get请求,通俗易懂
  • tan6458
  • tan6458
  • 2016年04月19日 16:43
  • 7349

rxandroid结合retrofit2发送post请求

近日retrofit2正式版发布,终于可以愉快的使用retrofit2了。retrofit2是一个android http通讯框架,内部集成了okhttp。RxJava是一个异步执行框架,采用的是发布...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:retrofit2 post url拼接设置问题
举报原因:
原因补充:

(最多只允许输入30个字)