私はRestKit 0.2に切り替えたばかりで、現在は基本的にAFHTTPClientである新しい "HttpClient"を使用しています。postPathのJSON応答AFHTTPClient
RKObjectManager* objectManager = [RKObjectManager sharedManager];
NSDictionary* params = [[NSDictionary alloc] initWithObjectsAndKeys: login, @"username", password, @"password", nil];
[[objectManager HTTPClient]postPath:@"users/login/?format=json" parameters:params
success:^(AFHTTPRequestOperation *operation, id responseObject)
{
//reponseObject vs operation.response
NSLog(@"%@", responseObject);
}
failure:^(AFHTTPRequestOperation *operation, NSError *error)
{
NSLog(@"ERROR");
}];
このPOSTコールフォームでJSONレスポンスを返す:{ "API_KEY": "... "" ユーザ名 ":" ..."}私はこのコードの行を有します。それと同じくらい簡単です。
0.2に切り替える前に、私が実行して応答したAPI_KEYキーを取得することができました:
[[RKClient sharedClient] post:@"https://stackoverflow.com/users/login/?format=json" usingBlock:^(RKRequest *request)
{
request.onDidLoadResponse = ^(RKResponse *response)
{
id parsedResponse = [response parsedBody:NULL];
NSString *apiKey = [parsedResponse valueForKey:@"api_key"];
}
}.....];
http://restkit.org/api/master/Classes/RKResponse.html
をしかし、今、私はそれを行うことができないと私はのNSLogを行う場合は、 responseObjectに、私が取得:
< 7b227265 61736f6e 223a2022 41504920 4b657920 666f756e 64222c20 22617069 5f6b6579 223a2022 61356661 65323437 66336264 35316164 39396338 63393734 36386438 34636162 36306537 65386331 73756363 222c2022 657373 22 3a207472 75657d>
そして奇妙なことは、私がしなければということである。
NSLog(@"%@", operation.responseString);
私が現れて(NSStringの中で)JSONを持っています。
ので、2つの質問:1)なぜHEXコードを示すresponseObjectはなく、実際にJSONレスポンスを印刷していますか?
2)私がoperation.responseStringを実行すると、なぜ実際の応答オブジェクトが表示されますか? JSONから解析された後、ResponseObjectで実際のデータを取得する方法はありますか?
ありがとうございます!
これは正解ですが、少なくともAFNetworkingのlibでは@ phix23のほうが優れていると思います。 ;) – Kjuly