`
wuliaolll
  • 浏览: 21434 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
文章分类
社区版块
存档分类
最新评论

discuz-ucenter-api-for-java中文用户名登录bug完美解决

 
阅读更多

近一段项目想用sso,解决方案想到了ucenter,现成的东西拿来就可以用,何乐而不为,因为自身业务系统有java,有php,有.net。急寻java的api,于是在网上找到了discuz-ucenter-api-for-java,下下来试用了一下,确实不错,但中文完全不支持……然后查看源码,一看就知道作者是纯php程序员……php好像对编码格式的处理不是很规范。看到很多网友也反映这个问题,带着问题,一步步debug,调用自带的Jsp_demo.jsp,发现每次打出来的用户名后面都有个]>,瞬间想到了是不是xml解析的时候有误,于是把result打出来,果不其然,因为调用ucenter接口返回的xml是iso-8859-1的预编码,作者用jdk自带的dom解析把中文解析出一串乱码,其中把cdata的结束符]>也带进去了,找到原因了就动手。

 

1、传值,登录是调用uc.uc_user_login("username", "password");这个方法最终post到ucenter还用了uriencode,可以打开PHPFunctions.java,就第一个方法23行,直接改成:

protected String urlencode(String value){
	    String str = null;
	try
        {
	    str = URLEncoder.encode(value,"UTF-8");
             
        }
        catch (UnsupportedEncodingException e)
        {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        
            return str;
}

 

2、返回值字符串解析编码,作者用的把InputStreamReader,很显然没有作编码处理,打开Client.java,找到uc_fopen方法,第344行,改成:

BufferedReader reader = new BufferedReader(new InputStreamReader(ins,"UTF-8"));

 

这里两步我的编码是UTF-8,请根据自己的需要改成自己对应的编码格式。一般要么是UTF-8,要么是GBK

 

 

分享到:
评论

相关推荐

    discuz-ucenter-api-for-java

    Comsenz(康盛)的 UCenter 当前在国内的单点登录领域占据绝对份额,其完整的产品线令 UCenter 成为了账号集成方面事实上的标准。基于 UCenter,可以将 Comsenz 旗下的 Discuz!(社区论坛系统)、SupeSite(门户CMS...

    discuz-ucenter-api-for-java:自动从code.google.compdiscuz-ucenter-api-for-java导出

    discuz-ucenter-api-for-java Automatically exported from code.google.com/p/discuz-ucenter-api-for-java 官方技术QQ交流群:200802554 本项目友情赞助: 本项目提供完全免费的JAVA版Discuz Ucenter API,可以...

    discuz-ucenter_api_for_java(内附测试项目).rar

    discuz-ucenter_api_for_java(内附测试项目).rar,测试项目为discuz压缩包,把里面加压后, 1.导入到你的eclipse里面, 2.把论坛的密钥什么的直接配置在discuz的config.properties中, 3.修改test.java里面的登陆注册...

    java8源码-discuz-ucenter-api-for-java:最完美的DiscuzUCenter的JAVAAPI接口,简单易用,完全

    discuz-ucenter-api-for-java 最完美的Discuz UCenter的JAVA API接口,简单易用,完全免费! 相关博文: 社区论坛: 说明 此项目移植自 / ,感谢原作者将他的代码开源。 由于原有项目已经非常古老了,看时间应该是...

    ucdemo discuz ucenter api for java

    UCenter API for Java详解》 UCDemo是一款专为Discuz!社区平台设计的Java实现的Ucenter API接口,它旨在帮助开发者在Java环境中与Discuz! Ucenter进行无缝对接,实现单点登录(Single Sign-On, SSO)功能。Ucenter...

    ucenter discuz Java api接口

    ucenter discuz Java api接口ucenter discuz Java api接口ucenter discuz Java api接口ucenter discuz Java api接口ucenter discuz Java api接口

    ucenter discuz Java api

    首先,Ucenter Discuz Java API 是一套基于Java语言的接口,允许开发者在Java环境中与Ucenter进行通信,实现用户注册、登录、信息同步等功能。它为开发者提供了便捷的方式来接入Ucenter服务,简化了与社区系统的集成...

    dicuz_ucenter_api (java版本)[含用法且已解决中文乱码]

    《DZ论坛Ucenter API Java版详解:解决中文乱码问题及使用指南》 DZ论坛,即Discuz!,是中国最流行的社区软件之一,其Ucenter是集成用户管理、登录验证、同步登录等功能的核心组件。为了方便Java开发者与DZ论坛进行...

    farm-ucenter1.5.zip

    Ucenter是Discuz! 开发的一款集成了用户管理、权限控制、数据同步等功能的中心化服务系统。在QQ农场项目中,Ucenter扮演了至关重要的角色,它负责管理所有用户的登录状态、个人信息、社交关系以及成就记录等,是连接...

    最完美的Discuz UCenter的JAVA API接口(含源码)

    这个"最完美的Discuz UCenter的JAVA API接口(含源码)"项目为Java开发者提供了一个解决方案,允许他们在自己的Java应用中集成Discuz UCenter的功能。API接口通常包括用户注册、登录验证、用户信息更新、社区权限控制...

    最完美的Discuz UCenter的JAVA API接口【java包】

    因此,"最完美的Discuz UCenter的JAVA API接口【java包】"的出现解决了这一困境,使得 Java 应用程序也能无缝地与 Discuz! UCenter 进行交互。 这个 Java 开发包(dzclient4j)提供了必要的工具和类库,让 Java ...

    最完美的Discuz UCenter的JAVA API接口

    长期以来,JAVA开发人员一直找不到好的社区系统,而现在广泛使用的PHP论坛又不能同时使用。... Ucenter的基本API接口, 你可以在此基础上集成你的应用。 以发布好的JAR文件,可以直接放到你的lib目录下

    JAVA_UCenter

    在描述中提到的"JAVA_UCenter /discuz-ucenter-api-for-java",意味着这是一个Java版本的UCenter API,开发者可以利用这个库在Java项目中方便地调用UCenter的API接口,进行诸如用户注册、登录、信息更新等操作。...

    Ucenter For ASP API

    **Ucenter For ASP API** Ucenter 是一个由Comsenz公司开发的身份认证中心,它集成了用户管理、权限控制、社区应用互联等功能,是构建大型社区网站的重要组件。ASP 版本的 Ucenter API 接口允许开发者用 ASP 语言与...

    java整合Ucenter统一登陆、退出源码

    Java整合Ucenter实现统一登录和退出的源码是基于UCenter通信协议的一种技术实践,它主要解决了在多个应用系统间用户身份验证的统一问题。UCenter是一个由Discuz!开发的用户中心系统,它可以集中管理多个网站或应用的...

    ecshop discuz ucenter整合

    和 UCenter 的整合是一项重要的工作,它能够帮助网站实现用户数据的统一管理,使得用户在登录其中一个系统后,无需再次登录其他关联的系统,提升了用户体验。下面将详细介绍如何进行这三者的整合。 ### 1. 安装 ...

    Python库 | web-ucenter-0.0.6.tar.gz

    "web-ucenter-0.0.6.tar.gz"是一个针对Python的特定库,名为"web-ucenter",版本号为0.0.6,它被封装在一个tar.gz压缩包中。这个库主要服务于前端开发,同时也与后端语言Python紧密关联。 首先,让我们了解一下...

    论坛社区UCenter Home 2.0 正式版 繁体中文BIG5-ucenter-home-2.0-tc-big5.zip

    这款正式版的繁体中文BIG5版本(ucenter-home-2.0-tc-big5.zip)是针对使用繁体中文环境的用户设计的,旨在提供更符合台湾、香港等地用户习惯的语言体验。此压缩包包含了完整的安装文件以及相关的项目文件资料,方便...

    ucenter 整合SNS

    2、java下有一个UCenter的API,可以较方便的在Java环境下调用UCenter接口,地址是 http://code.google.com/p/discuz-ucenter-api-for-java/,创始人是ping.china。 Snow_Young也有重新开发一个API的想法,以更符合...

    UCenter+MediaWiki+Discuz X2实现单点登录

    本话题将详细探讨如何通过UCenter、MediaWiki和Discuz X2这三款软件实现单点登录的集成。 首先,UCenter是由Comsenz开发的一款用户中心系统,主要用于管理和同步多个应用的用户数据,如论坛(Discuz!)、博客、问答...

Global site tag (gtag.js) - Google Analytics