{"id":17688183,"url":"https://github.com/ccapton/rxretrofit","last_synced_at":"2025-03-30T21:27:58.064Z","repository":{"id":176302417,"uuid":"112453240","full_name":"Ccapton/RxRetrofit","owner":"Ccapton","description":"这是Android的一个retrofit2的封装库，结合rextrofit2、rxjava2、rxandroid，实现获取String类型原始网络数据的一个简单封装库","archived":false,"fork":false,"pushed_at":"2017-11-29T10:52:37.000Z","size":5197,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-06T01:41:21.787Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Ccapton.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-11-29T09:16:40.000Z","updated_at":"2017-11-29T10:20:31.000Z","dependencies_parsed_at":"2023-06-29T21:31:47.158Z","dependency_job_id":null,"html_url":"https://github.com/Ccapton/RxRetrofit","commit_stats":null,"previous_names":["ccapton/rxretrofit"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ccapton%2FRxRetrofit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ccapton%2FRxRetrofit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ccapton%2FRxRetrofit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ccapton%2FRxRetrofit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Ccapton","download_url":"https://codeload.github.com/Ccapton/RxRetrofit/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246382582,"owners_count":20768234,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-24T11:43:40.944Z","updated_at":"2025-03-30T21:27:58.021Z","avatar_url":"https://github.com/Ccapton.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# RxRetrofit\n这是一个retrofit2的封装库，结合rextrofit2、rxjava2、rxandroid，实现获取String类型原始网络数据的一个简单封装库\n\n![](https://raw.githubusercontent.com/Ccapton/RxRetrofit/master/ezgif.com-resize%20(1).gif)\n## 引入\n#### 1 通过gradle\nbuild.gradle(Project)\n```\nallprojects {\n\t\trepositories {\n\t\t\t...\n\t\t\tmaven { url 'https://jitpack.io' }\n\t\t}\n\t}\n```\nbuild.gradle(Module:app)\n```\ndependencies {\n         compile 'com.github.Ccapton:RxRetrofit:1.0.0'\n   }\n```\n#### 2 下载项目后，直接把library工程引入到你的项目中，方便修改和优化（强烈建议）\n\n## 如何使用\n\n### 1.下面这个NewsApi是一个继承自BaseApi的演示子类api，大家可以参考这个例子写自己想要的Api。\n\n```code\n\nimport android.content.Context;\n\nimport com.capton.rxretrofit.R;\nimport com.capton.rxretrofit.api.BaseApi;\nimport com.capton.rxretrofit.listener.HttpOnNextListener;\n\nimport retrofit2.http.GET;\nimport retrofit2.http.Query;\nimport rx.Observable;\n\n/**\n *\n *  这个接口用的是我的极速数据新闻api，演示api。\n *  如果到时请求不到数据了，应该是被前面的人把剩余的请求数消耗完了，请自行找接口测试吧\n *\n * Created by capton on 2017/11/29.\n */\n\npublic class NewsApi extends BaseApi {\n\n    private NewsServer server;\n    private String appkey;\n    public final static String GET_NEWS = \"get_news\";  // 请求方法 ，每个接口类自由定义，\n\n    /**\n     * 演示api，获取新闻数据\n     * @param context 这里的context是为了获取系统资源，如果不需要context，则你新建BaseApi子类时可以不传context.\n     * @param onNextListener 监听回调\n     */\n    public NewsApi(Context context, HttpOnNextListener onNextListener) {\n        super(onNextListener);\n        appkey = context.getResources().getString(R.string.jisu_news_appkey);\n        setBaseUrl(\"http://api.jisuapi.com/news/\");        // 设置baseUrl\n        server = getRetrofit().create(NewsServer.class);   //  获取Server实例\n    }\n\n\n    public void getNews(String channel,int start,int num){\n        setMethod(GET_NEWS);   // 设置方法\n        doHttpDeal(server.getNews(channel,start,num,appkey));  // 开始请求\n    }\n\n    private interface NewsServer{\n        /**\n         *  以包裹 String 类型的Observable\u003cString\u003e类型返回，则可以自由地选择解析框架、\n         *  很直接地可以看到请求到的数据本体\n         * @param channel\n         * @param start\n         * @param num\n         * @param appkey\n         * @return\n         */\n        // channel=头条\u0026start=0\u0026num=10\u0026appkey=yourappkey\n        @GET(\"get\")\n        Observable\u003cString\u003e getNews(@Query(\"channel\") String channel, @Query(\"start\") int start,\n                                   @Query(\"num\") int num, @Query(\"appkey\") String appkey);\n    }\n}\n\n```\n\n### 2.在activity或者fragment中调用\n```code\n  @Override\n    protected void onCreate(Bundle savedInstanceState) {\n        super.onCreate(savedInstanceState);\n        setContentView(R.layout.activity_main);\n\n        findViewById(R.id.getData).setOnClickListener(new View.OnClickListener() {\n            @Override\n            public void onClick(View v) {\n                getData();\n            }\n        });\n\n\n    }\n\n    private void getData(){\n        NewsApi newsApi =new NewsApi(this, new HttpOnNextListener() {\n            @Override\n            public void onNext(String data, String method) {\n\n                ((TextView)findViewById(R.id.showNews)).setText(data);\n\n                // 自定义解析的方案\n                if(method.equals(NewsApi.GET_NEWS)){\n                    NewsBean newsBean = (NewsBean) JsonUtil.strToObject(data,NewsBean.class);\n                    if(\"0\".equals(newsBean.getStatus())){\n\n                    }\n                }\n            }\n\n            @Override\n            public void onError(Throwable e) {\n                e.printStackTrace();\n            }\n        });\n        newsApi.getNews(\"科技\",0,10);\n    }\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fccapton%2Frxretrofit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fccapton%2Frxretrofit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fccapton%2Frxretrofit/lists"}