我是iOS和AFNetworking的新手。我習慣了Titanium,以及使用與JavaScript中的xhr類似的模型發佈和獲取數據的非常簡單的方法。我發送Post請求到我的服務器並取回JSON。它在Titanium中完美地工作,但我有一段時間讓它在本地工作。AFNetworking 2.0 POST請求的問題
在做了一些研究Titanium的後端之後,看起來他們正在使用ASI,我發現它很有趣。現在看來AFNetworking是另一種選擇,因爲ASI不再被更新。然而,當我發送下面的請求時,它會得到一個text/html響應,而不是JSON響應。我猜這是因爲參數以及它們如何被髮送。
在另一個StackOverflow問題上,人們需要向服務器提供標準的post變量,服務器用JSON響應,這正是我需要做的。建議是在AFHTTPClient中設置「parameterEncoding爲AFFormURLParameterEncoding」,但我不知道該怎麼做。如果有人能幫我解決這個問題,我會永遠感激。如果能幫助任何人解決這個問題,我可以提供實際的帖子地址和虛擬用戶/密碼。
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
NSDictionary *parameters = @{@"username": @"dummyusername",@"password":@"dummypassword"};
NSString *URLString = @"https://www.webaddress.com/index.php?ACT=71";
[manager POST:URLString parameters:parameters constructingBodyWithBlock:^(id<AFMultipartFormData> parameters){} success:^(AFHTTPRequestOperation *operation, id responseObject) {
NSLog(@"JSON: %@", responseObject);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"Error: %@", error);
}];
有一個有趣的文章[這裏](http://gavrix.wordpress.com/2013/10/16/migrating-from-afnetworking-1-x-to- afnetworking-2 /)轉換爲AFNetworking 2.0。而且,在AFHTTPRequestOperationManager中發送參數的默認方法是通過JSON,而不是通過x-www-form-urlencoded風格。但我不確定如何更改方法。 – Chris