6

ねえ、

パース REST API への POST リクエストの実行に苦労しています。AFNetworking 2.0 を使用しています。AFHTTPSessionManager サブクラスのコードは次のようになります。

+ (ParseAPISession *)sharedSession {
     static ParseAPISession *sharedSession = nil;
     static dispatch_once_t onceToken;
     dispatch_once(&onceToken, ^{
         sharedSession = [[ParseAPISession alloc] initWithBaseURL:[NSURL URLWithString:kSDFParseAPIBaseURLString]];
    });
   return sharedSession;
}

と:

- (id)initWithBaseURL:(NSURL *)url {
    self = [super initWithBaseURL:url];
    if (self) {
       [self.requestSerializer setValue:kSDFParseAPIApplicationId forHTTPHeaderField:@"X-Parse-Application-Id"];
       [self.requestSerializer setValue:kSDFParseAPIKey forHTTPHeaderField:@"X-Parse-REST-API-Key"];
   }

   return self;
}

私はこのようなリクエストをしています:

[[ParseAPISession sharedSession] POST:@"ClassName" parameters: [NSDictionary dictionaryWithObjectsAndKeys:@"name", @"name", nil] 
                              success:^(NSURLSessionDataTask *task, id abc) {
                                  NSLog(@"%@", abc);
                              } failure:^(NSURLSessionDataTask *task, NSError *error) {
                                  NSLog(@"%@", error);
}];

これを行うと、常にこの種のエラーが発生します。

Error Domain=NSCocoaErrorDomain Code=3840 "The operation could't be completed. (Cocoa error 3840.)" (JSON テキストが配列またはオブジェクトで開始されておらず、フラグメントを許可するオプションが設定されていません。) UserInfo=0x8c72420 {NSDebugDescription=JSON テキスト配列またはオブジェクトで開始されておらず、フラグメントを許可するオプションが設定されていません。}

GET リクエストは魔法のように機能するので、なぜ何かを POST できないのか非常に混乱しています。誰でもこの問題で私を助けることができますか?

よろしくお願いします!

アップデート

幸いなことに、多くのテストを行った後、このエラー メッセージは表示されなくなりましたが、残念ながら別のメッセージが表示されました。

<NSHTTPURLResponse: 0x8b96d40>
{ URL: https://api.parse.com/1/users }
{ status code: 400, 
headers {
    "Access-Control-Allow-Origin" = "*";
    "Access-Control-Request-Method" = "*";
    "Cache-Control" = "no-cache";
    Connection = "keep-alive";
    "Content-Length" = 130;
    "Content-Type" = "application/json; charset=utf-8";
    Date = "Wed, 30 Oct 2013 20:01:58 GMT";
    Server = "nginx/1.4.2";
    "Set-Cookie" = "_parse_session=BAh7BkkiD3Nlc3Npb25faWQGOgZFRiIlNjIxZjUxMzY3NWVhZWJmMDYyYWYwMGJiZTQ3MThmMWE%3D--851bd31b07e7dba2c5f83bb13a8d801ecbea42c4; domain=.parse.com; path=/; expires=Fri, 29-Nov-2013 20:01:58 GMT; secure; HttpOnly";
    Status = "400 Bad Request";
    "X-Runtime" = "0.060910";
    "X-UA-Compatible" = "IE=Edge,chrome=1";
} }

Status: 400 Bad Request が私に何を伝えているのか、どうすればそれを取り除くことができるのか、誰か教えてもらえますか?

4

2 に答える 2