# 阅读[API](/app/src/main/java/io/legado/app/api/controller) ## 对于[Web](/app/src/main/java/io/legado/app/web/)的配置 您需要先在设置中启用"Web 服务"。 ## 使用 ### Web 以下说明假设您的操作在本机进行,且开放端口为1234。 如果您要从远程计算机访问[阅读](),请将`127.0.0.1`替换成手机IP。 #### 插入单个书源 请求BODY内容为`JSON`字符串, 格式参考[这个文件](/app/src/main/java/io/legado/app/data/entities/BookSource.kt) ``` URL = http://127.0.0.1:1234/saveBookSource Method = POST ``` #### 插入多个书源or订阅源 请求BODY内容为`JSON`字符串, 格式参考[这个文件](/app/src/main/java/io/legado/app/data/entities/BookSource.kt),**为数组格式**。 ``` URL = http://127.0.0.1:1234/saveBookSources URL = http://127.0.0.1:1234/saveRssSources Method = POST ``` #### 获取书源 ``` URL = http://127.0.0.1:1234/getBookSource?url=xxx URL = http://127.0.0.1:1234/getRssSource?url=xxx Method = GET ``` #### 获取所有书源or订阅源 ``` URL = http://127.0.0.1:1234/getBookSources URL = http://127.0.0.1:1234/getRssSources Method = GET ``` #### 删除多个书源or订阅源 请求BODY内容为`JSON`字符串, 格式参考[这个文件](/app/src/main/java/io/legado/app/data/entities/BookSource.kt),**为数组格式**。 ``` URL = http://127.0.0.1:1234/deleteBookSources URL = http://127.0.0.1:1234/deleteRssSources Method = POST ``` #### 调试源 key为书源搜索关键词,tag为源链接 ``` URL = ws://127.0.0.1:1235/bookSourceDebug URL = ws://127.0.0.1:1235/rssSourceDebug Message = { key: [String], tag: [String] } ``` #### 获取替换规则 ``` URL = http://127.0.0.1:1234/getReplaceRules Method = GET ``` #### 替换规则管理 请求BODY内容为`JSON`字符串, 替换规则参考[这个文件](/app/src/main/java/io/legado/app/data/entities/ReplaceRule.kt)。 ##### 删除 ``` URL = http://127.0.0.1:1234/deleteReplaceRule Method = POST Body = [ReplaceRule] ``` ##### 插入 ``` URL = http://127.0.0.1:1234/saveReplaceRule Method = POST Body = [ReplaceRule] ``` ##### 测试 返回测试文本text替换结果 ``` URL = http://127.0.0.1:1234/testReplaceRule Method = POST Body = { rule: [ReplaceRule], text: [String] } ``` #### 搜索在线书籍 若想获取对应的书籍的目录正文 请先**插入书籍**以启用缓存,如果试读后决定不添加到书籍,请**删除书籍** ``` URL = ws://127.0.0.1:1235/searchBook Message = { key: [String] } ``` #### 插入书籍 请求BODY内容为`JSON`字符串, 格式参考[这个文件](/app/src/main/java/io/legado/app/data/entities/Book.kt)。 ``` URL = http://127.0.0.1:1234/saveBook Method = POST ``` #### 删除书籍 ``` URL = http://127.0.0.1:1234/deleteBook Method = POST ``` #### 获取所有书籍 ``` URL = http://127.0.0.1:1234/getBookshelf Method = GET ``` 获取APP内的所有书籍。 #### 获取书籍章节列表 ``` URL = http://127.0.0.1:1234/getChapterList?url=xxx Method = GET ``` 获取指定图书的章节列表。 #### 获取书籍内容 ``` URL = http://127.0.0.1:1234/getBookContent?url=xxx&index=1 Method = GET ``` 获取指定图书的第`index`章节的文本内容。 #### 获取封面 ``` URL = http://127.0.0.1:1234/cover?path=xxxxx Method = GET ``` #### 获取正文图片 ``` URL = http://127.0.0.1:1234/image?url=${bookUrl}&path=${picUrl}&width=${width} Method = GET ``` #### 保存书籍进度 请求BODY内容为`JSON`字符串, 格式参考[这个文件](/app/src/main/java/io/legado/app/data/entities/BookProgress.kt)。 ``` URL = http://127.0.0.1:1234/saveBookProgress Method = POST ``` ### [Content Provider](/app/src/main/java/io/legado/app/api/ReaderProvider.kt) * 需声明`io.legado.READ_WRITE`权限 * `providerHost`为`包名.readerProvider`, 如`io.legado.app.release.readerProvider`,不同包的地址不同,防止冲突安装失败 * 以下出现的`providerHost`请自行替换 #### 插入单个书源or订阅源 创建`Key="json"`的`ContentValues`,内容为`JSON`字符串, 格式参考[这个文件](/app/src/main/java/io/legado/app/data/entities/BookSource.kt) ``` URL = content://providerHost/bookSource/insert URL = content://providerHost/rssSource/insert Method = insert ``` #### 插入多个书源or订阅源 创建`Key="json"`的`ContentValues`,内容为`JSON`字符串, 格式参考[这个文件](/app/src/main/java/io/legado/app/data/entities/BookSource.kt),**为数组格式**。 ``` URL = content://providerHost/bookSources/insert URL = content://providerHost/rssSources/insert Method = insert ``` #### 获取书源or订阅源 获取指定URL对应的书源信息。 用`Cursor.getString(0)`取出返回结果。 ``` URL = content://providerHost/bookSource/query?url=xxx URL = content://providerHost/rssSource/query?url=xxx Method = query ``` #### 获取所有书源or订阅源 获取APP内的所有订阅源。 用`Cursor.getString(0)`取出返回结果。 ``` URL = content://providerHost/bookSources/query URL = content://providerHost/rssSources/query Method = query ``` #### 删除多个书源or订阅源 创建`Key="json"`的`ContentValues`,内容为`JSON`字符串, 格式参考[这个文件](/app/src/main/java/io/legado/app/data/entities/BookSource.kt),**为数组格式**。 ``` URL = content://providerHost/bookSources/delete URL = content://providerHost/rssSources/delete Method = delete ``` #### 插入书籍 创建`Key="json"`的`ContentValues`,内容为`JSON`字符串, 格式参考[这个文件](/app/src/main/java/io/legado/app/data/entities/Book.kt)。 ``` URL = content://providerHost/book/insert Method = insert ``` #### 获取所有书籍 获取APP内的所有书籍。 用`Cursor.getString(0)`取出返回结果。 ``` URL = content://providerHost/books/query Method = query ``` #### 获取书籍章节列表 获取指定图书的章节列表。 用`Cursor.getString(0)`取出返回结果。 ``` URL = content://providerHost/book/chapter/query?url=xxx Method = query ``` #### 获取书籍内容 获取指定图书的第`index`章节的文本内容。 用`Cursor.getString(0)`取出返回结果。 ``` URL = content://providerHost/book/content/query?url=xxx&index=1 Method = query ``` #### 获取封面 ``` URL = content://providerHost/book/cover/query?path=xxxx Method = query ```