0

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 リクエストを実行して、到達できるかどうかを確認しようとしましたが、完全に機能します。私は本当に何ができるのか分かりません。どんな助けでもいただければ幸いです

4

0 に答える 0