最近在做一个通过 HttpClient 访问支付宝接口的东东,由于支付宝那边提供的是 https 的协议,所以在实现的过程中碰到了 N 多问题,现在拿出其中几个和大家一起分享。
再这之前还碰到一个 JUnit 环境配置的问题,稍后会写一份文档和大家一起分享。
下面正式开始进入作孽一样的调试过程,苦哉苦哉 …… 如果取经九九八十一难一样
第一难: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: No trusted certificate found
Baidu,google 先,网上有很多资料不过按照上面的步骤还是解决不了我的问题,不过这些资料对我以后的理解还是有很大帮助的,至少让我知道 HttpClient ( https )是无法自动获得证书的 ,整整搞了快 1 天还是搞不定。由于我机器同时装了 Jdk1.4 和 Jdk1.5 这个版本, Eclipse 是用 Jdk1.5 的,所以我索性将 Jdk1.4 和 Jdk1.5 一股脑儿统统删除,重新装 Jdk1.5 和重新配置 Eclipse 环境,这下再运行,哈哈!!!上面的 Exception 不见了,有出现了其它一个错误,下面来看第二难(莫明奇妙,还需要继续找资料为啥会好的)。
第二难: sun.security.validator.ValidatorException : PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException : unable to find valid certification path to requested target
郁闷,这个问题网络上还找不到很类似的情况,不过当时想肯定和 CA 证书是有关系的,最后发现这个结论还是有用的 ,进入解决 第二难的步骤:
1. 访问 https://www.aplipay3.net
2. IE 自动弹出安全警报界面,点击“查看证书”
3. 在证书界面,点击“详细信息”,“复制到文件”
4. 在证书导出向导界面,点击“ DER 编码二进制 X.509”
5. 导出文件为 alipay.cer
6. 将 alipay.cer 拷贝到 D:\Program Files\Java\jre1.5.0\lib\security ,而不是 D:\Program Files\Java\jdk1.5.0\jre\lib\security (这个可能和 Eclipse 的环境设置也有关系)
7. 然后用 KeyTool 工具将 alipay.cer 导入 D:\Program Files\Java\jre1.5.0\lib\security\ 目录下的 cacert 文件 ( 注意而不是 D:\Program Files\Java\jdk1.5.0\jre\lib\security 目录下的 , 这个可能和 Eclipse 的环境有关 )
8. 再一次执行程序,哈哈哈哈哈哈,搞定,终于得到了支付宝返回给我的可爱的 XML 数据流
由于以前对 Java 安全方面没有怎么接触过,还需对这方面继续补补课,嘿嘿: - )
分享到:
相关推荐
基于jmeter+Java+HttpclientUtil实现的接口测试工具,通过Excel表格进行维护接口相关参数信息,借助Jmeter工具通过java请求设计接口测试自动化测试用例。代码重写了JavaSampleClient类,在使用过程中取出了冗余的...
本书以testng、httpclient和selenium.appium为技术核心,详细介绍了如何进行端到端的自动化测试。下面将分别阐述这些工具在自动化测试中的作用及其相关知识点。 TestNG是一款强大的测试框架,它继承了JUnit的优点并...
4. Junit 在 Java 开发中的应用:Java 下的 team 开发,采用 cvs(版本控制) + ant(项目管理) + junit(集成测试) 的模式时,通过对 ant 的配置,可以很简单地实现测试自动化。 5. Junit 测试的分类:Junit 有不同的...
通过这样的实验,学生将学习如何创建测试类,定义测试方法,使用Junit的断言来验证结果,并理解测试驱动开发(TDD)的理念,即先写测试再写实现。 总之,"自动饮料机Junit测试"实验是实践软件测试理念和技巧的有效...
在Java开发过程中,接口自动化测试是一项至关重要的任务,它能够有效地确保代码质量,减少手动测试的工作量,并在软件迭代过程中快速验证功能的正确性。MyBatis作为一个轻量级的持久层框架,与MySQL数据库结合,可以...
Eclipse自动生成接口和JUnit测试类 Eclipse自动生成接口和JUnit测试类 Eclipse自动生成接口和JUnit测试类
2. 测试方法必须使用 public void 修饰,而且不能带有任何参数。 六、查看运行结果 在测试类上点击右键,在弹出菜单中选择 Run As JUnit Test。运行结果将显示在测试结果窗口中,绿色的进度条提示我们,测试运行...
测试httpclient,主要测试json参数的接口,包括get请求和post请求。
在这个场景中,我们使用HttpClient来调用远程接口,从电信公司的网站获取可用的新手机号码信息,并将这些数据存储到本地文件中。以下是对这个过程的详细解释: 1. **HttpClient的基本使用**: HttpClient提供了一...
在Eclipse中使用JUnit4进行单元测试是一种常见的Java开发实践,它可以帮助开发者确保代码的正确性和稳定性。单元测试是软件开发中的重要环节,通过编写针对代码各个独立模块的测试用例,可以验证代码功能是否按预期...
通过研究和实践这个例子,开发者不仅可以掌握ANT和JUnit的基本用法,还能了解如何在Eclipse中整合这两个工具,实现高效、自动化的测试流程。这对于提升个人或团队的软件开发质量和效率都具有重要意义。
资源对应https://onefire.blog.csdn.net/article/details/120736588博客,这个是一个完整的基于SpringBoot架构的Java项目,使用idea或者eclipse打开就可以使用。对零基础或小白,以及测试工程师,有很大的参考价值。
在实际应用中,开发者通常会使用构建工具(如Maven或Gradle)配合JUnit进行自动化测试,这使得测试能够集成到开发流程中,并且可以在每次代码修改后自动运行。JUnit的结果可以通过测试报告展示,帮助开发者快速定位...
反射允许我们在运行时检查类、接口、字段和方法的信息,并能动态地调用方法或访问字段。在Java中,`java.lang.reflect`包提供了反射的相关类和接口。通过`Class`对象,我们可以获取到类的所有信息,包括私有成员。 ...
6. **运行测试**:使用IDE(如Eclipse、IntelliJ IDEA)内置的Junit支持,或者通过命令行运行Junit测试套件。 7. **查看测试结果**:测试失败时,Junit会显示失败的测试用例及具体的失败信息,帮助我们定位问题。 ...
总的来说,`JUnit`和`Ant`的结合使用为企业级的Java开发提供了一套强大的自动化测试解决方案,它使得测试过程更加规范、高效,有助于打造高质量的软件产品。通过不断优化和扩展这个demo,你可以更好地理解和掌握这两...