2012-01-15 59 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]; 

很顯然,我可怕做的事情錯誤。但是,沉默的失敗使得這很難弄清楚。

感謝您的任何幫助。

編輯:

沒關係..我很密集。

沒有創建NSOperationQueue。

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

雖然,我還不清楚爲什麼這些屬性沒有設置。但是,看起來我至少有數據。

回答

3

創建請求操作對象不會自動啓動請求。就像您在編輯中指出的那樣,您可以將其排入NSOperationQueue或手動執行[operation start]

我建議您使用AFHTTPClient與您的服務器通信,因爲它提供了一個內置機制,可以根據您傳入的參數正確設置查詢字符串或HTTP正文。請參閱示例中的Gowalla API示例客戶端代碼和方法AFHTTPClient -postPath:parameters:success:failure

+0

感謝您的回覆。 – user1146403 2012-01-18 02:13:14

相關問題