2012-01-15 9 views
0

私はiOSプログラミングの新しさから密集していると確信していますが、AFNetworkingに問題があります。具体的には、私がそれを使用すると何も起こりません。私はサーバーから何の応答も得られませんが、私はエラーもありません。すべてのプロパティがNULLになります。ここでAFNetworkingは何もしません。

は私の要求です:

NSMutableDictionary *requestArray = [NSMutableDictionary new]; 
[requestArray setObject: @"getBio" 
       forKey: @"action"]; 
[requestArray setObject: @"1" 
       forKey: @"bioID"]; 

NSError * error = nil; 

NSData *jsonData = [NSJSONSerialization dataWithJSONObject:requestArray options:0 error:&error]; 

NSString *myRequestString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding]; 

NSMutableURLRequest *request = [ [ NSMutableURLRequest alloc ] initWithURL: [ NSURL URLWithString: @"http://localhost/LP/JSON/Secure/bio.php" ] ]; 

[ request setHTTPMethod: @"POST" ]; 
[ request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"content-type"]; 
[ request setHTTPBody: [myRequestString dataUsingEncoding:NSUTF8StringEncoding]]; 

これは、私は単にのUIWebViewにまたは私はこれを使用する場合は、要求を渡す場合、私は私の予想結果を得るように動作するようです:他に

NSURLResponse *response; 
NSError *err; 
NSData *returnData = [ NSURLConnection sendSynchronousRequest: request returningResponse:&response error:&err]; 
NSString *content = [NSString stringWithUTF8String:[returnData bytes]]; 
NSLog(@"responseData: %@", content); 

POSTが成功し、JSONが返されます。

しかし、これらのどれも何も(エラーなし、無応答)ん:

AFJSONRequestOperation *operation = [AFJSONRequestOperation JSONRequestOperationWithRequest:request success:^(NSURLRequest *request, NSHTTPURLResponse *response, id JSON) { 
    NSLog(@"Data: %@ %@", [JSON valueForKeyPath:@"firstName"], [JSON valueForKeyPath:@"lastName"]); 
} failure:nil]; 

すらむき出しの骨の試行作業を行います、私は恐ろしく何かを明らかに

AFURLConnectionOperation *operation = [[AFURLConnectionOperation alloc] initWithRequest:request]; 

をやっていませんよ違う。しかし、静かな失敗はこれを理解することを困難にしています。

ありがとうございました。

EDIT:

ネヴァーマインド..私は密集しています。

NSOperationQueueを作成していませんでした。

NSOperationQueue *queue = [[NSOperationQueue alloc] init]; 
[queue addOperation:operation]; 

ただし、プロパティが設定されていない理由はまだわかりませんが、しかし、少なくとも私はデータを持っているように見えます。

答えて

3

要求操作オブジェクトを作成しても、要求が自動的に開始されるわけではありません。あなたが編集で指摘したように、NSOperationQueueにエンキューするか、[operation start]を手動で行うかはあなた次第です。

AFHTTPClientを使用してサーバーと通信することをお勧めします。これは、渡されたパラメータに基づいてクエリ文字列またはHTTP本文を正しく設定する組み込みのメカニズムを提供するためです。サンプルのGowalla APIサンプルクライアントを参照してください。コード、方法はAFHTTPClient -postPath:parameters:success:failureです。

+0

お返事ありがとうございます。 – user1146403

関連する問題