与AyanTech网络服务合作的iOS SDK
使用此SDK与AyanTech网络服务通信。
安装
在您的项目PodFile
中添加以下行:
pod 'AyanTechNetworkingLibrary`
然后从终端运行pod install
命令。
使用
//method can be omitted (default is POST)
let request = ATRequest.request(url: "https://ayantech.ir/some/endpoint/url", method: .post)
request.setJsonBody(body: [
"Parameters": [
"ParamA": "ValueA",
"ParamB": "ValueB"
]
])
request.send { response in
print("response code is: \(response.responseCode)")
print("response raw string is: \(response.responseString)")
print("response raw json is: \(response.responseJsonObject)")
print("parameters json object is: \(response.parametersJsonObject)")
}
模拟响应
好消息
响应文件是一个包含响应体和头的json文件。目前只能模拟成功的响应。以下是模拟json文件格式和用法:
模拟文件格式
{
"headers": {},
"body": {},
"meta": {
"statusCode": 200,
"delay": 2.0
}
}
header
应该是包含所有头字段的对象。(可选)meta
应当是一个包含状态码和响应延迟(以秒为单位)的 对象。meta 对象是可选的,statusCode
的默认值是 200,delay
的默认值是 0。body
可以是 任何类型,例如对象、数组、字符串、整数等。(必需)
以下是一个模拟 JSON 文件的示例
{
"headers": {
"Access-Control-Allow-Headers": "X-Requested-With,Content-Type, Accept",
"Access-Control-Allow-Origin": "*",
"Cache-Control": "private",
"Content-Length": "805",
"Content-Type": "application/json; charset=utf-8",
"Date": "Wed, 12 Sep 2018 06:05:07 GMT",
"Server": "Microsoft-IIS/8.5",
"X-AspNet-Version": "4.0.30319",
"X-Powered-By": "ASP.NET"
},
"body": {
"Parameters": [
{
"Detail": "درخواست انتقال وجه",
"ID": 100,
"Name": "100",
"ShowName": "100"
}
],
"Status": {
"Code": "G00000",
"Description": "درخواست با موفقیت انجام شد."
}
},
"meta": {
"statusCode": 200,
"delay": 2.0
}
}
使用模拟文件进行模拟响应
只需使用 ATRequest
的 mockResponse
方法并传入文件路径。
它看起来像这样
ATRequest.request(url: "http://api.ayantech.ir/sampleApi", method: .get)
.mockResponse(using: Bundle.main.path(forResource: "mockFile", ofType: nil)!)
.send { response in
print(response.responseString ?? "null")
}
速查表
ATRequest
属性 | 类型 | 描述 |
---|---|---|
url | String | 请求 URL 字符串 |
method | HTTPMethod | 请求 HTTP 方法(get、post、put 等) |
headers | [] 字符串:字符串 | 请求头 |
body | [字符串:Any] | 请求参数(可以是 body 或查询参数,取决于编码) |
encoding | ParameterEncoding | 身体编码方法。此变量决定是否将 body 作为查询参数或 HTTP 身体 |
ATResponse
属性 | 类型 | 描述 |
---|---|---|
headers | [] AnyHashable:Any | 响应头映射 |
responseString | String? | 响应原始体字符串 |
status | Status? | 响应状态对象(如果存在) |
error | ATError? | 响应错误(如果状态码不是 20x) |
responseCode | Int | 响应状态码(20x 表示成功) |
responseJsonObject | [String: Any]? | 响应体 JSON 对象格式(如果 body 是有效的 JSON 字符串) |
parametersJsonObject | [String Any]? | 响应 JSON 对象的参数对象(如果存在) |
ATError
属性 | 类型 | 描述 |
---|---|---|
波斯语描述 | String? | 波斯语错误展示字符串 |
代码 | Int? | 错误代码 |
类型 | ATErrorType? | 错误类型 |
名称 | String? | 错误代码名称 |
ATErrorType
案例 | 描述 |
---|---|
无网络 | 当用户没有网络连接(无论是wifi还是蜂窝)时 |
超时 | 当请求超时 |
服务器错误 | 当服务器返回50x错误代码时 |
取消 | 当请求被用户取消时 |
通用 | 以上都不是 |