gpt4 book ai didi

ios - 适用于 iOS 的 AWS API Gateway 客户端返回错误 "Failed to serialize the body JSON"

转载 作者:行者123 更新时间:2023-11-29 01:08:22 26 4
gpt4 key购买 nike

我使用 AWS API Gateway 定义了我的 REST API,并为 iOS 生成了客户端代码。当我调用方法时,SDK 输出此错误消息:

AWSiOSSDKv2 [Error] AWSAPIGatewayClient.m line:190__118-[AWSAPIGatewayClient invokeHTTPRequest:URLString:pathParameters:queryParameters:headerParameters:body:responseClass:]_block_invoke_2 | Failed to serialize the body JSON. (null)

怎么了?

最佳答案

简单!

  1. 确保您的 AWSModel 具有与 JSON 键路径属性键数量相同的类成员数量。我的没有类成员和 2 个属性键。

  2. 确保每个属性键的名称与类成员的名称匹配。我再次有一个“代码” key ,但没有匹配的“代码”属性。

为了清楚起见,请查看 JSONKeyPathsByPropertyKey 函数。如果您看到 @"abc": @"def" 那么您的类中必须有一个属性“abc”,否则 JSON 转换将失败。

// Sample JSON returned by AWS API Gateway
{"code":200, "message":"OK", "data":{"phone":"(555) 555-1234"}}
// APISample.h

#import
#import

@interface APISample : AWSModel

// We count 4 class members
@property (nonatomic, strong) NSNumber *code;
@property (nonatomic, strong) NSString *message;
@property (nonatomic, strong) NSDictionary *data;
@property (nonatomic, strong) NSNumber *phone;

@end
// APISample.m

#import "APISample.h"

@implementation APISample

// We count 4 property keys
+ (NSDictionary *)JSONKeyPathsByPropertyKey {
return @{
@"code": @"code",
@"message": @"message",
@"data": @"data",
@"phone": @"data.phone"
};
}

提示:请注意如何访问分支(数据为 NSDictionary)并使用点符号 (data.phone) 遍历文档结构。

奖励:一个专门为您准备的 Swift 示例。

// Swift sample code to access AWS API Gateway under iOS

// Create a client with public access
var client : APISampleClient = APISampleClient.defaultClient()

// Comment next line if your API method does not need API key
client.APIKey = "Your API key"

client.SampleMethodGet().continueWithBlock { (task : AWSTask) -> AnyObject? in

if task.error != nil {
print("Error \(task.error)")
}
else if task.result != nil {
let output = task.result as! APISample
print("Success \(output)")
}
return nil
}

关于ios - 适用于 iOS 的 AWS API Gateway 客户端返回错误 "Failed to serialize the body JSON",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36076037/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com