pda/zhuike/.svn/pristine/be/beef08ea36a7025fc3059839524...

110 lines
4.5 KiB
Plaintext
Raw Permalink Normal View History

2024-02-06 22:23:29 +08:00
package com.novelbook.android.netapi;
import java.util.Map;
import io.reactivex.Observable;
import okhttp3.ResponseBody;
import retrofit2.Call;
import retrofit2.http.Body;
import retrofit2.http.FieldMap;
import retrofit2.http.FormUrlEncoded;
import retrofit2.http.GET;
import retrofit2.http.POST;
import retrofit2.http.Path;
import retrofit2.http.Query;
import retrofit2.http.QueryMap;
import retrofit2.http.Streaming;
import retrofit2.http.Url;
/**
* Created by 眼神 on 2018/3/27.
*
* 存放所有的Api
*/
public interface HttpApi {
//请填写自己的接口名
// @POST("abc")
// Observable<ResponseBody> getDataForBean(@Body DouBanMovieRequest bean);
@GET("top250")
Observable<ResponseBody> getDataForMap(@QueryMap Map<String, Integer> map);
/**
* 通过地址下载一个文件
*/
@GET("ab")
@Streaming
Call<ResponseBody> downloadFile(@Url String fileUrl);
//http://xiaoshuofenxiang.com/api/g/
@GET("g/")
Observable<ResponseBody> getMasterDomain();
//http://xiaoshuofenxiang.com/api/n/f2619820112625133c14dcb170f5e092.json
@GET("n/{id}")
Observable<ResponseBody> getNovel(@Path("id") int novelId);
//http://xiaoshuofenxiang.com/api/n/f2619820112625133c14dcb170f5e092.mulu-urls.json
@GET("n/{id}/mulu-urls")
Observable<ResponseBody> getNovelSites(@Path("id") int novelId);
//http://xiaoshuofenxiang.com/api/s/www.qu.la.json
@GET("s/{siteDomain}.json")
Observable<ResponseBody> getNovelRule(@Path("siteDomain") String siteDomain);
@GET("page/index")
Observable<ResponseBody> getFirstPage(@Query("sex") int Sex);
//分类的总榜显示每个小说分类有多少本书http://xiaoshuofenxiang.com/api/page/noveltype
@GET("page/noveltype")
Observable<ResponseBody> getCates(@Query("sex") int sex);
// sex1 2progress:1, 连载中、2已完本3. 新书 http://xiaoshuofenxiang.com/api/search/nt/言情/2?sex=2&progress=1
//@GET("search/nt/{cate}/{pageno}?sex={sex}&progress={progress} ")
// Observable<ResponseBody> search(@Query("cate") String cate, @Query("pageno") int pageno, @Query("sex") int sex, @Query("progress") int progress);
@GET("search/nt/{cate}/{pageno}")
Observable<ResponseBody> getCateNovels(@Path("cate") String cate, @Path("pageno") int pageno, @Query("sex") int sex, @Query("progress") int progress);
//小说排行 http://xiaoshuofenxiang.com/api/page/rank?fn=hot
@GET("page/rank")
Observable<ResponseBody> getNovelPaihang(@Query("fn") String fn,@Query("sex") int Sex);
//相关小说 http://xiaoshuofenxiang.com/api/n/6/about
@GET("n/{novelId}/about")
Observable<ResponseBody> getNovelsRelated(@Path("novelId") int novelId);
//同作者其它小说http://xiaoshuofenxiang.com/api/n/7/author
@GET("n/{novelId}/author")
Observable<ResponseBody> getNovelsSameAuthor(@Path("novelId") int novelId);
//站点榜单http://xiaoshuofenxiang.com/api/page/siteranks?sex=1
/* @GET("page/siteranks")
Observable<ResponseBody> getSiteRanks(@Query("sex") int Sex);
//http://xiaoshuofenxiang.com/api/page/siterank?fn=qidian-yuanchuangfengyunbang&pn=3
@GET("page/siterank")
Observable<ResponseBody> getSiteRankDetail(@Query("fn")String fn,@Query("pn")int pageNo,@Query("sex") int Sex);*/
@GET( "search/{keyword}/{pageno}")
Observable<ResponseBody> getSeachNolvelist(@Path("keyword")String keyWord,@Path("pageno")int pageNo,@Query("sex") int Sex);
// 搜索分类 http://xiaoshuofenxiang.com/api/page/topdata
@GET("page/topdata")
Observable<ResponseBody> getSearchTitles(@Query("sex") int Sex);
//返回指定id列表的小说列表api/novels/1,2
@GET("novels/{nvs}")
Observable<ResponseBody> getNovelsByIds(@Path("nvs")String nvs );
//返回指定id列表的小说列表
@GET("page/hot-keywords")
Observable<ResponseBody> getSearchHotKeys();
@GET("download/version.xml")
Observable<ResponseBody> getVersion();
@GET("page/category")
Observable<ResponseBody> getPaihangBangCateList(@Query("sex") int Sex,@Query("type") String type);
@GET("page/siteranks")
Observable<ResponseBody> getPaihangBangByCate(@Query("sex") int Sex,@Query("cid") int cid);
@GET("page/siterank")
Observable<ResponseBody> getPaihangBangList(@Query("sex") int Sex,@Query("cid") int cid,@Query("pn")int pageNo);
@FormUrlEncoded
@POST("r/{actionType}.shtml") //{action type}.shtml?msg=${msg}
Observable<ResponseBody> reportMsg(@Path("actionType")String actionType, @FieldMap Map<String, String> map);
}