[英]How to use iOS generated SDK for AWS API Gateway (Swift)
[英]swift: How can I set the body in the PUT request in the generated iOS sdk for aws-api-gateway?
这是PUT请求的代码,我想将TokenId作为JSON发送到api:我该怎么做?
public func paymentPut(tokenId: String) -> AWSTask<AnyObject> {
let headerParameters = [
"Content-Type": "application/json",
"Accept": "application/json",
]
let queryParameters:[String:Any] = [:]
let pathParameters:[String:Any] = [:]
return self.invokeHTTPRequest("PUT", urlString: "***", pathParameters: pathParameters, queryParameters: queryParameters, headerParameters: headerParameters, body: nil, responseClass: nil)
}
我尝试将主体设置为此,但是我的应用程序崩溃了:
let body: [String:Any] = ["token": tokenId]
崩溃后,错误是:***由于未捕获的异常'NSInvalidArgumentException'而终止应用程序,原因:'+ [_ TtGCs26_SwiftDeferredNSDictionarySSP__ JSONKeyPathsByPropertyKey]:无法识别的选择器已发送给类
好的,所以这将来可能会有所帮助。 这就是我的解决方法:1)创建一个AWS数据模型
import Foundation
import AWSCore
@objcMembers
public class TESTPaymentPUT : AWSModel {
var token: String?
public override static func jsonKeyPathsByPropertyKey() -> [AnyHashable : Any]!{
var params:[AnyHashable : Any] = [:]
params["token"] = "token"
return params
}
}
2)在您的视图控制器中设置以下值:
let tokenBody = TESTPaymentPUT()
tokenBody?.token = token
3)调用API方法,并将tokenBody设置为视图控制器中的参数:
API.client.paymentPut(body: tokenBody).continueOnSuccessWith { (_) -> Any? in
return nil
}
4)更改API方法:
public func paymentPut(body: TESTPaymentPUT?) -> AWSTask<AnyObject> {
let headerParameters = [
"Content-Type": "application/json",
"Accept": "application/json",
]
let queryParameters:[String:Any] = [:]
let pathParameters:[String:Any] = [:]
return self.invokeHTTPRequest("PUT", urlString: "***", pathParameters: pathParameters, queryParameters: queryParameters, headerParameters: headerParameters, body: body, responseClass: nil)
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.