AFNetworking を使用して PUT リクエストを作成しようとしています。リクエストで更新したいリモートの場所に JSON があります。
オブジェクトを JSON にシリアル化することができ、それを NSDictionary オブジェクトにしました。
NSDictionary *container = [NSDictionary dictionaryWithObject:[self notifications] forKey:@"notifications"];
このようにして、NSLog を使用してコンテナーを出力すると、送信したい JSON が正確に取得されます。
次に、リクエストに AFNetworking を使用しようとします。
AFHTTPClient *putClient = [[AFHTTPClient alloc] initWithBaseURL:[NSURL URLWithString:@"http://creativemind.appspot.com"]];
[putClient setParameterEncoding:AFJSONParameterEncoding];
NSMutableURLRequest *putRequest = [putClient requestWithMethod:@"PUT"
path:@"/notifications"
parameters:container];
AFHTTPRequestOperation *putOperation = [[AFHTTPRequestOperation alloc] initWithRequest:putRequest];
[putClient registerHTTPOperationClass:[AFHTTPRequestOperation class]];
[putOperation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) {
NSLog(@"Response: %@", [[NSString alloc] initWithData:responseObject encoding:NSUTF8StringEncoding]);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"Error: %@", error);
}];
[putOperation start];
この解決策を試すと、次のエラー メッセージが表示されます。
2013-08-10 16:10:40.741 NotificationReader[1132:c07] エラー: エラー Domain=AFNetworkingErrorDomain Code=-1011 「(200-299) の予想されるステータス コード、400 を取得しました」 UserInfo=0x75c89e0 {NSLocalizedRecoverySuggestion={"原因" :null,"class":"java.lang.NumberFormatException","localizedMessage":"null","message":"null"}, AFNetworkingOperationFailingURLRequestErrorKey=http://creativemind.appspot.com/notifications>, NSErrorFailingURLKey= http ://creativemind.appspot.com/notifications、NSLocalizedDescription = (200-299) の予期されるステータス コード、400 を取得、AFNetworkingOperationFailingURLResponseErrorKey =}
nil パラメータで同じリクエストを実行すると、同じエラー メッセージが表示されることに注意することが重要だと思います。また、同じ JSON に対して GET リクエストを実行して、到達できるかどうかを確認しようとしましたが、完全に機能します。私は本当に何ができるのか分かりません。どんな助けでもいただければ幸いです