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



Retrofit2 完全解析 探索与okhttp之间的关系

转载请标明出处: http://blog.csdn.net/lmj623565791/article/details/51304204; 本文出自:【张鸿洋的博客】 一、概述 之前写...
  • lmj623565791
  • lmj623565791
  • 2016年05月04日 10:02
  • 108688

Retrofit用法详解

一、 简介Retrofit是Square公司开发的一款针对Android网络请求的框架,Retrofit2底层基于OkHttp实现的,OkHttp现在已经得到Google官方认可,大量的app都采用O...
  • duanyy1990
  • duanyy1990
  • 2016年08月06日 23:11
  • 59577

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

Retrofit 参数方式和Url处理注解汇总Retrofit 参数方式和Url处理注解汇总 请求方式 常用的Url路径处理注解 常见错误状态码请求方式每个函数都必须带有 HTTP 注解来表明请求方式...
  • fuhao476200
  • fuhao476200
  • 2016年10月31日 10:31
  • 4939

Retrofit Url 配置

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

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

之前总结过Volley-OkHttpVolley–OkHttp学习博客今天来写写Retrofit的demo,简单封装下Retrofit与okhttp共同出自于Square公司,retrofit就是对o...
  • u013210620
  • u013210620
  • 2016年11月02日 18:43
  • 3807

Retrofit的url 的拼接

public interface ServiceAPI { //商品展示 //http://apiv3.yangkeduo.com/v5/newlist?page=1&size=20&...
  • SXS120730
  • SXS120730
  • 2017年12月10日 16:32
  • 106

【网络】Retrofit2 POST(参数传递和文件上传)

【网络】Retrofit2 POST(参数传递和文件上传),post参数,post文件,还有文件和参数一起上传。记录过程中所遇到的一些坑。----tjstudy...
  • u012391876
  • u012391876
  • 2016年09月21日 13:19
  • 12723

Retrofit 2 动态URL

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

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

原文网址:http://write.blog.csdn.net/postedit?ticket=ST-95882-ne4Elhd3Ebe7jJoJj7k4-passport.csdn.net ...
  • tiananma0607
  • tiananma0607
  • 2016年11月16日 08:49
  • 2621

Android 网络框架之Retrofit2使用详解及从源码中解析原理

就目前来说Retrofit2使用的已相当的广泛,那么我们先来了解下两个问题:1 . 什么是Retrofit?Retrofit是针对于Android/Java的、基于okHttp的、一种轻量级且安全的、...
  • guiman
  • guiman
  • 2016年05月26日 16:32
  • 22351
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:retrofit2 post url拼接设置问题
举报原因:
原因补充:

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