• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

discuz-ucenter-api-for-java: 最完美的Discuz UCenter的JAVA API接口,简单易用,完 ...

原作者: [db:作者] 来自: 网络 收藏 邀请

开源软件名称:

discuz-ucenter-api-for-java

开源软件地址:

https://gitee.com/rnf/discuz-ucenter-api-for-java

开源软件介绍:

discuz-ucenter-api-for-java

Latest Stable VersionFOSSA Status

最完美的Discuz UCenter的JAVA API接口,简单易用,完全免费!

相关博文:https://www.renfei.net/posts/1003429

社区论坛:https://bbs.renfei.net/forum-44-1.html

说明

此项目移植自https://code.google.com/archive/p/discuz-ucenter-api-for-java / https://github.com/liangping/dzclient4j,感谢原作者梁平 ([email protected])将他的代码开源。

由于原有项目已经非常古老了,看时间应该是2009年的产物,但现在的项目都使用MavenSpringBoot进行构建,里面直接配置servlet的方式不太适合现代项目集成,我就拿来进行了一些修改,让使用MavenSpringBoot的程序更容易集成进去。

关于 GPL-2.0 License

GPLv2具有很强的传染性,选用这个开源协议并不是我定的,而是原项目作者在开源时就选用了 GPLv2,我也只能跟随原开源协议继续传染下去。

当然,如果您并不注重什么版权协议,那可以无视。

FOSSA Status

关于程序包名修改

也许您注意到源程序的程序包名由com.fivestars被我改为了net.renfei.discuz.ucenter,这是因为要发布到Maven中央仓库,在注册Maven中央仓库的时候会要求验证域名所有权,并且数字签名,所以我只能发布net.renfei的库,为了在项目中不产生混淆,我就直接将源码中的包名也一起统一修改了。

必要条件

您的项目环境需要是JDK1.8以上。其中Base64使用了Java8自带的库实现,移除了原作者自己写的Base64算法。同时我的编译环境也是在Java8中编译发布的。

安装

我使用的是MavenSpringBoot进行演示。在pom.xml文件中添加依赖:

<dependency>  <groupId>net.renfei</groupId>  <artifactId>discuz-ucenter-api-for-java</artifactId>  <version>1.0.7</version></dependency>

如果你使用的是传统方式,需要下载Jar包,放入lib文件夹,下载地址:discuz-ucenter-api-for-java-1.0.7.jar

使用

为了跟SpringBoot更好的集成,我对原项目进行了修改,原项目是修改配置文件,我修改为了实例化时传递参数的方式

Https(SSL) 站点

如果你的站点是https的,必须使用版本号1.0.6及以上,旧版本的作者没有考虑https,我修改了代码兼容了https

实例化

实例化一个客户端net.renfei.discuz.ucenter.client.Client,参数依次是:UCenter接口地址、IP地址、通讯Key、APPID、Connect。

Client client = new Client("http://localhost/uc_server", null, "key", "2","");

客户端

旧的源代码中是通过配置文件注册一个servlet,我改造的是用于SpringBoot项目的,所以通过配置文件注册servlet不是很方便,而且为了尽量降低代码入侵性,我就改为自己使用Controller处理HttpServletRequestHttpServletResponse的方式。

先创建一个Controller,然后创建一个处理HttpServletRequestHttpServletResponse的方法,给一个UCenter请求的地址@RequestMapping("/api/uc.php"),实例化一个客户端net.renfei.discuz.ucenter.api.UCClientnet.renfei.discuz.ucenter.client.Client,然后把HttpServletRequest交给net.renfei.discuz.ucenter.api.UCClient.doAnswer()去处理,最后将结果写入HttpServletResponse,如果UCenter配置正确,就应该可以在UCenter看到通讯正常了。具体使用如下案例:

@Controllerpublic class UCenterController {    @ResponseBody    @RequestMapping("/api/uc.php")    public void uc(HttpServletRequest request, HttpServletResponse response) throws IOException {        UCClient ucClient = new UCClient();        Client client = new Client("http://localhost/uc_server", null, "key", "2","");        String result = ucClient.doAnswer(client, request, response);        response.getWriter().print(result);    }}

如果您想自己处理一些动作的逻辑,只需要继承net.renfei.discuz.ucenter.api.UCClient然后重写覆盖里面的doAnswer(Client client, HttpServletRequest request, HttpServletResponse response)方法即可。

注册

Client client = new Client("http://localhost/uc_server", null, "key", "2","");String string = client.ucUserRegister("username","password","email");

登陆

Client client = new Client("http://localhost/uc_server", null, "key", "2","");String string = client.ucUserLogin("username","password");

同步登陆

Client client = new Client("http://localhost/uc_server", null, "key", "2","");int UID = 21; //此处是用户的UIDString string = client.ucUserSynlogin(uid);

先登陆再同步登陆

Client client = new Client("http://localhost/uc_server", null, "key", "2","");// 登陆String result = client.ucUserLogin(uid);LinkedList<String> rs = XMLHelper.ucUnserialize(result);if(rs.size() > 0){	int uid = Integer.parseInt(rs.get(0));	String username = rs.get(1);	String password = rs.get(2);	String email = rs.get(3);	if(uid > 0) {		//同步登陆		String string = client.ucUserSynlogin(uid);		//本地登陆代码		//TODO ... ....	} else if(uid == -1) {		System.out.println("用户不存在,或者被删除");	} else if(uid == -2) {		System.out.println("密码错");	} else {		System.out.println("未定义");	}}else{	System.out.println("Login failed");	System.out.println(result);}

常见问题

在网友使用中出现问题,和我们一起讨论交流的结果将在 https://www.renfei.net/posts/1003429 文章末尾常见问题中更新补充。

代码仓库

更多信息

更多信息请阅读源代码,此处不再一一演示。您可以提出issues或者到我的社区论坛一起讨论:https://bbs.renfei.net/forum-44-1.html

求鼓励

如果这个项目帮助到了你,是否能给我点个免费的星星 (Star) 给个鼓励呢。高星项目我将持续关注努力更新的。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap