-1

我正在从 iOS 向我的 Web 服务发布 http 帖子,该服务是在 .NET 平台上编写的。

我正在使用JSONModel序列化/反序列化和AFNetworking来发出 http 请求。

我可以提出请求并成功获得响应。但是,当响应数据上的任何变量为空时,就会出现问题。

这是我如何调用我的网络服务:

NSDictionary *parameters = @{@"Username":username,@"Password":password};
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
[manager POST:@"<my_url>" parameters:parameters success:^(AFHTTPRequestOperation *operation, id responseObject) {
    // Request succeeded.
    LoginResponse *response =[[LoginResponse alloc]initWithDictionary:responseObject error:nil];
    // !!! "response" is null here because of Message on response data is null.
}failure:^(AFHTTPRequestOperation *operation, NSError *error) {
    // Request failed.
}];

这是我的LoginResponse.h文件:

@interface LoginResponse : JSONModel

@property (nonatomic, strong) NSString *IsSuccess;
@property (nonatomic, strong) NSString *Message;

@end

这是我通过 Fiddler 请求时 Web 服务返回的内容:

{"IsSuccess":true,"Message":null}

由于我在响应数据上有空值,因此反序列化不起作用。当我从文件中删除(因为响应数据上的消息为空)@property (nonatomic, strong) NSString *Message;行时LoginResponse.h,反序列化工作正常。

我不在乎响应数据是否有空变量,我只想反序列化它。我无法估计问题是什么。为什么当响应具有空变量时反序列化不起作用?

任何帮助,将不胜感激。

4

1 回答 1

0

在 中声明Message可选LoginResponse

@property (nonatomic, strong) NSString<Optional>* Message;

有关更多信息,请参阅JSONModel 文档

于 2013-12-16T21:11:35.467 回答