iOS から .NET プラットフォームで作成された Web サービスに http 投稿を行っています。
JSONModelを使用してシリアライズ/デシリアライズし、AFNetworkingを使用して http リクエストを作成しています。
リクエストを送信して、正常にレスポンスを取得できます。ただし、応答データの変数が null の場合、問題が発生します。
Web サービスを呼び出す方法は次のとおりです。
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}
応答データに null 値があるため、逆シリアル化は機能しません。ファイルから(応答データのメッセージがnullであるため)@property (nonatomic, strong) NSString *Message;
行を削除するLoginResponse.h
と、逆シリアル化が正常に機能します。
応答データに null 変数があるかどうかは気にしません。逆シリアル化したいだけです。問題が何であるかを見積もることはできません。応答にnull変数がある場合、逆シリアル化が機能しないのはなぜですか?
どんな助けでも大歓迎です。