RgWsPublicClient
RgWsPublicClient 是一个用于访问 GSIS 为自然人法人和其他实体提供的 新网络服务 的 iOS 客户端。该新网络服务提供两种方法:一种用于检索服务版本信息,另一种用于获取请求的增值税(A.F.M.)信息。后一种方法需要使用 WSS 的 UsernameToken 扩展进行身份验证(参见 Web 服务安全 UsernameToken 配置文件)。该项目有一个简单的基于块的客户端,提供两个方法(对应两个网络服务操作),并且对所有层(传输层、应用层)进行错误检查和处理,同时还包含一个使用客户端的示例 Xcode 项目。
用法
要运行示例项目,只需运行
pod try RgWsPublicClient
或克隆仓库,然后从 Example 目录运行
pod install
首先,包含客户端 #import <RgWsPublicClient/RgWsPublicClient.h>
到您的源文件中。
Apple 传输安全
自iOS 9.0开始,引入了一个名为ATS(Apple传输安全)的新安全功能,要求应用必须使用遵循特定最低安全标准的安全套接层(HTTPS)连接,或者在您的plist文件中声明具体异常。遗憾的是,服务端点服务器只支持TLSv1,这被认为不是很安全,调用时会因为错误失败,错误信息如下:Error Domain=NSURLErrorDomain Code=-1200 "An SSL error has occurred and a secure connection to the server cannot be made."
。如果您应用的链接是iOS 9.0 SDK或更高版本,那么您必须在您的plist文件中添加以下内容:
<key>NSAppTransportSecurity</key>
<dict>
<key>NSExceptionDomains</key>
<dict>
<key>www1.gsis.gr</key>
<dict>
<key>NSExceptionRequiresForwardSecrecy</key>
<false/>
<key>NSIncludesSubdomains</key>
<false/>
<key>NSExceptionMinimumTLSVersion</key>
<string>TLSv1.0</string>
</dict>
</dict>
</dict>
示例
- 初始化客户端
[RgWsPublicClient clientWithUsername:@"<username>" password:@"<password>"];
然后在任何位置获取共享实例并执行您需要的方法
- 调用rgWsPublicAfmMethod(不需要有效的用户名和密码)
[[RgWsPublicClient sharedInstance] rgWsPublicVersionInfoSuccess:^(NSString *result) {
NSLog(@"result version string: %@", result);
} failure:^(NSError *error) {
NSLog(@"error: %@", [error localizedDescription]);
}];
- 调用rgWsPublicVersionInfo(必须有有效的用户名和密码)
[[RgWsPublicClient sharedInstance]
rgWsPublicAfmMethodCallForAfm:@"123456789"
Success:^(RgWsPublic_RgWsPublicBasicRtUser *rgWsPublicBasicRt_out,
RgWsPublic_RgWsPublicFirmActRtUserArray *arrayOfRgWsPublicFirmActRt_out,
NSNumber *pCallSeqId_out,
RgWsPublic_GenWsErrorRtUser *rgWsPublic_GenWsErrorRtUser) {
NSLog(@"onomasia : %@", rgWsPublicBasicRt_out.onomasia);
NSLog(@"doyDescr : %@", rgWsPublicBasicRt_out.doyDescr);
NSLog(@"commerTitle : %@", rgWsPublicBasicRt_out.commerTitle);
for (RgWsPublic_RgWsPublicFirmActRtUser *user in arrayOfRgWsPublicFirmActRt_out.RgWsPublicFirmActRtUser) {
NSLog(@"firmActDescr: %@ %@", user.firmActKindDescr, user.firmActDescr);
}
} failure:^(NSError *error) {
NSLog(@"error: %@", [error localizedDescription]);
}];
要求
注册服务
为了使用需要身份验证的方法,您必须注册服务,并生成一个用户名和一个密码,详情可以参考以下链接:http://www.gsis.gr/gsis/info/gsis_site/PublicIssue/wnsp/wnsp_pages/wnsp.html。
安装
使用CocoaPods(推荐)
RgWsPublicClient可以通过CocoaPods使用。要安装它,只需在Podfile中添加以下行:
pod "RgWsPublicClient"
然后在源文件中导入客户端#import <RgWsPublicClient/RgWsPublicClient.h>
。
手动
- 将文件从 RgWsPublicClient/Pod/Classes 拖拽到您的项目中
- 导入 RgWsPublicClient.h
#import <RgWsPublicClient/RgWsPublicClient.h>
- 为所有文件添加 -fno-objc-arc 标志(除了 RgWsPublicClient.m)
- 在项目的构建设置中在头文件搜索路径中添加 "/usr/include/libxml2"
作者
Christos Koninis, [email protected]
许可证
RgWsPublicClient 采用 MIT 许可证。有关更多信息,请参阅 LICENSE 文件。