2 zhongguobaozi zhongguobaozi 于 2016.09.06 18:54 提问

retrofit2.0 接口该怎么写 2C

研究了一段retrofit,但是还是有一点不清楚,就是接口不确定怎么写,
假如有个接口请求连接如下 :
http://test.com/indiana-front/user/login10?data={"phone":"16111110000","smsType":"USERLOGIN","validCode":"1"}&token=9FF93C4DE6B54A8F9CCE750E324FBF1C&mac=868227023024375&cfcnl=Official&version=1.1.0&requestType=1

其中:token,mac,cfcnl,version,requestType都是放在头的

请问该怎么写接口

2个回答

devmiao
devmiao   Ds   Rxr 2016.09.07 00:03
windboy2014
windboy2014   2016.09.10 18:28

我直接把我的拷贝给你吧 代码 处理头部在最下面处理的
public class RetrofitManager {
//时间超时
public static final int TIMEOUT = 30;
private APIService mApiService;
private static volatile OkHttpClient mOkHttpClient;
//保证多个地址的
public static Map managers = new HashMap<>();

public static RetrofitManager getInstance(String url) {
    RetrofitManager instance = managers.get(url);
    if (instance == null) {
        instance = new RetrofitManager(url);
        managers.put(url, instance);
    }
    return instance;
}

public static RetrofitManager getInstance() {
    return getInstance(UstarURL.SERVICE_URL);
}

private RetrofitManager(String url) {
    initOkHttpClient();
    Retrofit retrofit = new Retrofit.Builder()
            .baseUrl(url)
            .addConverterFactory(GsonConverterFactory.create())
            .addCallAdapterFactory(RxJavaCallAdapterFactory.create())
            .client(mOkHttpClient)
            .build();
    mApiService = retrofit.create(APIService.class);
}

public static APIService getAPIService() {
    return getInstance().mApiService;
}

public static APIService getAPIService(String url) {
    return getInstance(url).mApiService;
}

private void initOkHttpClient() {
    HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor();
    interceptor.setLevel(HttpLoggingInterceptor.Level.BODY);
    if (mOkHttpClient == null) {
        synchronized (RetrofitManager.class) {
            if (mOkHttpClient == null) {
                // 指定缓存路径,缓存大小100Mb
                Cache cache = new Cache(new File(UStarApplication.getInstance().getApplicationContext().getCacheDir(), "HttpCache"),  1024 * 1024 * 100);
                mOkHttpClient = new OkHttpClient.Builder()
                        .cache(cache)
                        //统一处理请求头
                        .addInterceptor(netInterceptor)
                        .retryOnConnectionFailure(true)
                        .connectTimeout(TIMEOUT, TimeUnit.SECONDS)
                        .build();

            }
        }
    }
}


//头部统一处理
Interceptor netInterceptor = new Interceptor() {
    @Override
    public Response intercept(Chain chain) throws IOException {
        Request request = chain.request();
        //网络不可用
        if (!UStarUtils.isNetworkAvailable(UStarApplication.getInstance().getApplicationContext())) {
            request=request.newBuilder().cacheControl(CacheControl.FORCE_CACHE).build();
        }
        if(SPUtils.isLogin(UStarApplication.getInstance().getApplicationContext())) {
            request=  request.newBuilder().addHeader("rsa","").build();
        }else {
            request=request.newBuilder().addHeader("rsa",SPUtils.getUser(UStarApplication.getInstance().getApplicationContext()).token+"").build();
        }
        return chain.proceed(request);
    }
};

}

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
Retrofit2.0详解(一简单使用)
几个月前,对Retrofit进行了一个系统的学习,不过没有做一个整理和总结,正好国庆没什么事就写几篇博客对Retrofit的简单使用,上传下载进度监听,封装使用,源码解析做一个学习,记录如下 1~简单使用       由于retrofit2.0与先前版本的差别还是比较大,对于不同版本之间的差异在这里就不在进行详细区别。下面的例子也是针对于retrofit2.0进行介绍的。retro
Retrofit2.0 API使用解析
Retrofit2.0API 使用解析
Retrofit2.0+网络框架HTTP实战
上文为介绍了搭建本地服务端,Android客户端是进行普通的HTTP请求,今天我继续介绍一种新的网络请求方式,就是目前比较流行的一种框架:Retrofit。 Retrofit是一款面向Android和Java的类型安全的HTTP客户端框架,简单方便。可以通过注解的方式,申明请求的方式和参数。它很强大,支持GET, POST, PUT, DELETE, and HEAD.等请求。
Android 网络请求框架 Retrofit2.0实践使用总结
比较AsyncTask、Volley、Retrofit三者的请求时间 使用 单次请求 7个请求 25个请求 AsyncTask 941ms 4539ms 13957ms Volley 560ms 2202ms 4275ms Retrofit2.0 312ms 889ms 1059ms Retrofit2.0 完胜使用添加依赖build.g
网络请求框架之Retrofit2.0基本讲解
Retrofit是一套RESTful架构的Android(Java)客户端实现,基于注解,提供JSON to POJO(Plain Ordinary Java Object,简单Java对象),POJO to JSON,网络请求(POST,GET,PUT,DELETE等)封装。用官方自己的介绍就是: A type-safe REST client for Andro
Retrofit2.0使用详解
Retrofit2.0 项目主页 Retrofit2.0 官方文档简介Retrofit是由Square公司出品的针对于Android和Java的类型安全的Http客户端,网络服务基于OkHttp 。 Retrofit2.0: 有史以来最大的改进使用Retrofit2.0下载 v2.0.0-beta2 JARGradlecompile 'com.squareup.retrofit:retrofit
Retrofit2.0和RxJava2获取天气的Demo
使用Retrofit2.0获取天气的Demo,包括Retrofit2.0和RxJava2的组合使用。 使用Retrofit2.0获取天气的Demo,包括Retrofit2.0和RxJava2的组合使用。
Retrofit2.0+RxJava+RxAndroid——强强联合的网络请求框架
最近看了很多关于Retrofit和Rxjava的文档介绍。终于在弄清Rxjava后顺利的弄懂了Retrofit。网上有很多人都介绍了它们的联合使用,但是我看过之后理解不是太好。可能我太笨。 不过,今天写这篇博客的目的就是想来说说它们之间如何使用以及使用的时候遇到的坑。这两者的关系并不大,但是联合在一起使用是非常简便的。Rxjava的响应式编程加上Retrofit的注解式请求用起来是非常爽的。
Retrofit2.0源码分析
最近注解式的框架非常火,注解以其轻量,简洁等特性被人们所喜爱者,关键是它解藕。网络请求的框架非常多,比较受欢迎的当属retrofit和okHttp了。连retrofit都是基于okHttp之上开发的。ok, 言归正传,我们来聊聊retrofit。我们假设读者都对okHttp有一定的了解! 先简单说下retrofit的用法,如果不懂,可以上网查查就知道了,当然最好还是看官方的文档。 public
Retrofit2.0通俗易懂的学习姿势,Retrofit2.0 + OkHttp3 + Gson + RxJava
Retrofit2.0通俗易懂的学习姿势,Retrofit2.0 + OkHttp3 + Gson + RxJava Retrofit,因为其简单与出色的性能,也是受到很多人的青睐,但是他和以往的通信框架还是有点区别,不过放心,因为他本身还是挺简单的,所有我相信你看完这篇文章,对基本的请求是没什么问题的,其实现在网上这样的文章也有很多了,好了,那我们直接开车吧! 一.相关资料 Github:ht