我正在从 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
,反序列化工作正常。
我不在乎响应数据是否有空变量,我只想反序列化它。我无法估计问题是什么。为什么当响应具有空变量时反序列化不起作用?
任何帮助,将不胜感激。