discuzapi接口_discuz-ucenter-api-for-java

discuz-ucenter-api-for-java

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

说明

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

关于 GPL-2.0 License

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

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

关于程序包名修改

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

必要条件

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

安装

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

net.renfei

discuz-ucenter-api-for-java

1.0.3

使用

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

实例化

实例化一个客户端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处理HttpServletRequest和HttpServletResponse的方式。

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

@Controller

public 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; //此处是用户的UID

String string = client.ucUserSynlogin(uid);

先登陆再同步登陆

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

// 登陆

String result = client.ucUserLogin(uid);

LinkedList 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);

}

更多信息

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值