java发送http请求调用api 实现与discuz同步登陆、注册、登出、修改密码
由于公司需要在门户网站添加论坛模块,选择使用discuz!要求第三方应用与discuz实现同步登陆注册、修改密码,查找了好多文章,又根据自己的实践,捣鼓了一个类似与中间件的api 调度服务器,仅供参考。
1、我安装的是最新的discuz 32,里面包含了ucenter
这是我下载的discuz的压缩包:
链接: https://pan.baidu.com/s/1VRhVWOJjt9sAp2rV0omVJg 密码: 53ep
解压安装discuz 就不赘述了(此处省略10000字)
2、安装完成后,然后就是通信了,配置Ucenter:
是否同步登陆 选择 是
是否接受消息通知 是
3、配置完成,检测此时应该通信是失败的,OK,不要着急,接下来开始配置最关键的API了!
“discuz-ucenter-api-for-java”相关api 需要去下载一下,地址:https://code.google.com/archive/p/discuz-ucenter-api-for-java/downloads
当然不能登陆google的可以从我的分享里拿一下:
链接: https://pan.baidu.com/s/1p3PdPJfvzsGMguhHjsSJ7Q 密码: d3ck
我用的IDEA创建的restapi,容器用的tomcat.因为java水平有限,你们可根据自己的需求去操作!
具体配置这块,借鉴其他大神的文章,转载于:https://www.cnblogs.com/MarsCheng/p/7245292.html
4、之后就是写api了
- Client e = new Client();
- String result = e.uc_user_login("username", "password");
- LinkedList rs = XMLHelper.uc_unserialize(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) {
- System.out.println("登录成功");
- System.out.println($username);
- System.out.println($password);
- System.out.println($email);
- String $ucsynlogin = e.uc_user_synlogin($uid);
- System.out.println("登录成功"+$ucsynlogin);
- //本地登陆代码 //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);
- }
- String $returns = uc.uc_user_register(user.getUsername(), "***", user.getEmail());
- int $uid = Integer.parseInt($returns);
- if ($uid <= 0) {
- if ($uid == -1) {
- System.out.print("用户名不合法");
- } else if ($uid == -2) {
- System.out.print("包含要允许注册的词语");
- } else if ($uid == -3) {
- System.out.print("用户名已经存在");
- } else if ($uid == -4) {
- System.out.print("Email 格式有误");
- } else if ($uid == -5) {
- System.out.print("Email 不允许注册");
- } else if ($uid == -6) {
- System.out.print("该 Email 已经被注册");
- } else {
- System.out.print("未定义");
- }
- } else {
- System.out.println("OK:" + $returns);
- }
差不多就这意思吧!
修改密码:
算了我这人太懒了,直接看我的分享吧:
链接: https://pan.baidu.com/s/15KLf8fp7PIhdLDEXFngBjA 密码: n6x1
对了通信成功后,还有一些需要注意的
看一下接口的截图啊(还是截图快,简单方便):
太累了!反正就这样了~~~~~