RgWsPublicClient 0.2.0

RgWsPublicClient 0.2.0

测试已测试
Lang语言 Obj-CObjective C
许可证 MIT
发布上次发布2018年6月

Christos Koninis 维护。



  • 作者:
  • Christos Koninis

RgWsPublicClient

CI Status Version License Platform codecov

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 文件。