墙裂推荐

本文是来自我的星球「马腾蛟」分享的完整开源的小程序:玩androids,基于鸿洋大神的玩 android 开放 API 完成的,一起来学习小程序开发吧。

完整开源项目推荐:玩androids小程序_java

效果预览完整开源项目推荐:玩androids小程序_java_02完整开源项目推荐:玩androids小程序_java_03完整开源项目推荐:玩androids小程序_java_04完整开源项目推荐:玩androids小程序_java_05

左右滑动查看更多

TODO

个人的小程序限制太多,如果可以的话,还是尽量搞一个企业账号玩玩吧。①、“个体工商户”的小程序账户注册好之后,将文章详情链接加上。②、将玩 android 的开放 API 提供的“待办事项”模块加上。

小程序上线接口

由于小程序上线必须要求服务器域名只支持 https 协议,所以「马腾蛟」同学将玩 android 的 api 数据在「马腾蛟」同学本人的服务器上转发了一下。

/**
* 玩android开放api,
* 本人服务器域名地址: https://www.mtjsoft.cn
*/
@RestController
@RequestMapping(value = "/wanandroid/api/")
public class WanAndroidApiController {

/**========================================1.首页相关=================================================================**/
/**
    * 首页文章列表
    *
    * @param pagernumber 方法:GET
    *                    参数:页码,拼接在连接中,从0开始。
    * @return
    * @throws Exception
    */
@GetMapping(value = "/article/list")
public String indexList(@RequestParam(value = "pagernumber") int pagernumber) throws Exception {
String url = "http://www.wanandroid.com/article/list/" + pagernumber + "/json";
HttpMethod method = HttpMethod.GET;
MultiValueMap<String, String> params = new LinkedMultiValueMap<String, String>();
return HttpClient.init().client(url, method, params, null);
}


/**
    * 首页banner
    *
    * @return
    * @throws Exception
    */
@GetMapping(value = "/banner")
public String indexBanner() throws Exception {
//url
String url = "http://www.wanandroid.com/banner/json";
//get请求
HttpMethod method = HttpMethod.GET;
// 封装参数,千万不要替换为Map与HashMap,否则参数无法传递
MultiValueMap<String, String> params = new LinkedMultiValueMap<String, String>();
return HttpClient.init().client(url, method, params, null);
}

/**
    * 常用网站
    *
    * @return
    * @throws Exception
    */
@GetMapping(value = "/friend")
public String friend() throws Exception {
//url
String url = "http://www.wanandroid.com/friend/json";
//get请求
HttpMethod method = HttpMethod.GET;
// 封装参数,千万不要替换为Map与HashMap,否则参数无法传递
MultiValueMap<String, String> params = new LinkedMultiValueMap<String, String>();
return HttpClient.init().client(url, method, params, null);
}

/**
    * 搜索热词
    *
    * @return
    * @throws Exception
    */
@GetMapping(value = "/hotkey")
public String hotkey() throws Exception {
//url
String url = "http://www.wanandroid.com/hotkey/json";
//get请求
HttpMethod method = HttpMethod.GET;
// 封装参数,千万不要替换为Map与HashMap,否则参数无法传递
MultiValueMap<String, String> params = new LinkedMultiValueMap<String, String>();
return HttpClient.init().client(url, method, params, null);
}


/**========================================2.体系=================================================================**/

/**
    * 体系数据
    *
    * @return
    * @throws Exception
    */
@GetMapping(value = "/tree")
public String tree() throws Exception {
//url
String url = "http://www.wanandroid.com/tree/json";
//get请求
HttpMethod method = HttpMethod.GET;
// 封装参数,千万不要替换为Map与HashMap,否则参数无法传递
MultiValueMap<String, String> params = new LinkedMultiValueMap<String, String>();
return HttpClient.init().client(url, method, params, null);
}

/**
    * 知识体系下的文章
    *
    * @param pagernumber 方法:GET
    *                    参数:
    *                    cid 分类的id,上述二级目录的id
    *                    页码:拼接在链接上,从0开始。
    * @param cid
    * @return
    * @throws Exception
    */
@GetMapping(value = "/tree/list")
public String treeList(@RequestParam(value = "pagernumber") int pagernumber, @RequestParam(value = "cid") String cid) throws Exception {
//url
String url = "http://www.wanandroid.com/article/list/" + pagernumber + "/json?cid="+cid;
//get请求
HttpMethod method = HttpMethod.GET;
// 封装参数,千万不要替换为Map与HashMap,否则参数无法传递
MultiValueMap<String, String> params = new LinkedMultiValueMap<String, String>();
return HttpClient.init().client(url, method, params, null);
}

/**========================================3.导航=================================================================**/
/**
    * 导航数据
    *
    * @return
    * @throws Exception
    */
@GetMapping(value = "/navi")
public String navi() throws Exception {

//url
String url = "http://www.wanandroid.com/navi/json";
//get请求
HttpMethod method = HttpMethod.GET;
// 封装参数,千万不要替换为Map与HashMap,否则参数无法传递
MultiValueMap<String, String> params = new LinkedMultiValueMap<String, String>();
return HttpClient.init().client(url, method, params, null);
}

/**========================================4.项目=================================================================**/
/**
    * 项目分类
    *
    * @return
    * @throws Exception
    */
@GetMapping(value = "/project")
public String project() throws Exception {
//url
String url = "http://www.wanandroid.com/project/tree/json";
//get请求
HttpMethod method = HttpMethod.GET;
// 封装参数,千万不要替换为Map与HashMap,否则参数无法传递
MultiValueMap<String, String> params = new LinkedMultiValueMap<String, String>();
return HttpClient.init().client(url, method, params, null);
}

/**
    * 项目列表数据
    *
    * @param pagernumber 方法:GET
    *                    参数:
    *                    cid 分类的id,上面项目分类接口
    *                    页码:拼接在链接中,从1开始。
    * @param cid
    * @return
    * @throws Exception
    */
@GetMapping(value = "/project/list")
public String projectList(@RequestParam(value = "pagernumber") int pagernumber, @RequestParam(value = "cid") String cid) throws Exception {
//url
String url = "http://www.wanandroid.com/project/list/" + pagernumber + "/json";
//get请求
HttpMethod method = HttpMethod.GET;
// 封装参数,千万不要替换为Map与HashMap,否则参数无法传递
MultiValueMap<String, String> params = new LinkedMultiValueMap<String, String>();
params.add("cid", cid);
return HttpClient.init().client(url, method, params, null);
}

/**========================================5. 登录与注册=================================================================**/

/**
    * 登录
    *
    * @param username 方法:POST
    *                 参数:
    *                 username,password
    *                 登录后会在cookie中返回账号密码,只要在客户端做cookie持久化存储即可自动登录验证。
    * @param password
    * @return
    * @throws Exception
    */
@PostMapping(value = "/login")
public String login(@RequestParam(value = "username") String username, @RequestParam(value = "password") String password) throws Exception {
//url
String url = "http://www.wanandroid.com/user/login";
//get请求
HttpMethod method = HttpMethod.POST;
// 封装参数,千万不要替换为Map与HashMap,否则参数无法传递
MultiValueMap<String, String> params = new LinkedMultiValueMap<String, String>();
params.add("username", username);
params.add("password", password);
return HttpClient.init().client(url, method, params, username);
}

/**
    * 退出登录,清楚本地cookie
    *
    * @param username
    * @throws Exception
    */
@GetMapping(value = "/loginout")
public void loginout(@RequestParam(value = "username") String username) throws Exception {
HttpClient.init().deteleCookie(username);
}


/**
    * 注册
    *
    * @param username   方法:POST
    *                   参数
    *                   username,password,repassword
    * @param password
    * @param repassword
    * @return
    * @throws Exception
    */
@PostMapping(value = "/register")
public String register(@RequestParam(value = "username") String username, @RequestParam(value = "password") String password
, @RequestParam(value = "repassword") String repassword) throws Exception {
//url
String url = "http://www.wanandroid.com/user/register";
//get请求
HttpMethod method = HttpMethod.POST;
// 封装参数,千万不要替换为Map与HashMap,否则参数无法传递
MultiValueMap<String, String> params = new LinkedMultiValueMap<String, String>();
params.add("username", username);
params.add("password", password);
params.add("repassword", repassword);
return HttpClient.init().client(url, method, params, null);
}

/**========================================6. 收藏=================================================================**/
/**
    * 收藏的文章列表
    *
    * @param pagernumber 方法:GET
    *                    参数: 页码:拼接在链接中,从0开始。
    * @return
    * @throws Exception
    */
@GetMapping(value = "/collect/list")
public String collectList(@RequestParam(value = "pagernumber") int pagernumber, @RequestParam(value = "username") String username) throws Exception {
//url
String url = "http://www.wanandroid.com/lg/collect/list/" + pagernumber + "/json";
//get请求
HttpMethod method = HttpMethod.GET;
// 封装参数,千万不要替换为Map与HashMap,否则参数无法传递
MultiValueMap<String, String> params = new LinkedMultiValueMap<String, String>();
return HttpClient.init().client(url, method, params, username);
}

/**
    * 收藏站内文章
    *
    * @param id 方法:POST
    *           参数: 文章id,拼接在链接中。
    *           注意链接中的数字,为需要收藏的id.
    * @return
    * @throws Exception
    */
@PostMapping(value = "/collect")
public String collect(@RequestParam(value = "id") int id, @RequestParam(value = "username") String username) throws Exception {
//url
String url = "http://www.wanandroid.com/lg/collect/" + id + "/json";
//get请求
HttpMethod method = HttpMethod.POST;
// 封装参数,千万不要替换为Map与HashMap,否则参数无法传递
MultiValueMap<String, String> params = new LinkedMultiValueMap<String, String>();
return HttpClient.init().client(url, method, params, username);
}

/**
    * 从文章列表取消收藏
    *
    * @param id 方法:POST 参数:
    *           id:拼接在链接上
    * @return
    * @throws Exception
    */
@PostMapping(value = "/uncollectoriginId")
public String uncollectoriginId(@RequestParam(value = "id") int id, @RequestParam(value = "username") String username) throws Exception {
//url
String url = "http://www.wanandroid.com/lg/uncollect_originId/" + id + "/json";
//get请求
HttpMethod method = HttpMethod.POST;
// 封装参数,千万不要替换为Map与HashMap,否则参数无法传递
MultiValueMap<String, String> params = new LinkedMultiValueMap<String, String>();
return HttpClient.init().client(url, method, params, username);
}

/**
    * 从我的收藏页面取消收藏
    *
    * @param id 方法:POST
    *           参数:
    *           id:拼接在链接上
    *           originId:列表页下发,无则为-1
    *           originId 代表的是你收藏之前的那篇文章本身的id; 但是收藏支持主动添加,这种情况下,没有originId则为-1
    * @return
    * @throws Exception
    */
@PostMapping(value = "/uncollect")
public String uncollect(@RequestParam(value = "id") int id, @RequestParam(value = "username") String username,
@RequestParam(value = "originId") String originId) throws Exception {
//url
String url = "http://www.wanandroid.com/lg/uncollect/" + id + "/json";
//get请求
HttpMethod method = HttpMethod.POST;
// 封装参数,千万不要替换为Map与HashMap,否则参数无法传递
MultiValueMap<String, String> params = new LinkedMultiValueMap<String, String>();
params.add("originId",originId);
return HttpClient.init().client(url, method, params, username);
}

/**========================================7. 搜索=================================================================**/
/**
    * 搜索
    *
    * @param key         方法:POST
    *                    参数:
    *                    页码:拼接在链接上,从0开始。
    *                    k : 搜索关键词
    *                    注意:支持多个关键词,用空格隔开
    * @param pagernumber
    * @return
    * @throws Exception
    */
@PostMapping(value = "/query")
public String query(@RequestParam(value = "key") String key, @RequestParam(value = "pagernumber") int pagernumber) throws Exception {
//url
String url = "http://www.wanandroid.com/article/query/" + pagernumber + "/json";
//get请求
HttpMethod method = HttpMethod.POST;
// 封装参数,千万不要替换为Map与HashMap,否则参数无法传递
MultiValueMap<String, String> params = new LinkedMultiValueMap<String, String>();
params.add("k", key);
return HttpClient.init().client(url, method, params, null);
}

/**========================================8. HTML=================================================================**/
@GetMapping(value = "/html")
public String html(@RequestParam(value = "link") String link)throws Exception{
//get请求
HttpMethod method = HttpMethod.GET;
// 封装参数,千万不要替换为Map与HashMap,否则参数无法传递
MultiValueMap<String, String> params = new LinkedMultiValueMap<String, String>();
return HttpClient.init().client(link, method, params, null);
}
}
源码地址

https://github.com/mtjsoft/wanandroid