2014-02-08 23 views
2

我想在iOS7上使用AFNetworking 2.0通過POST發送一個JSON編碼數組到一個Web服務器。

_manager = [[AFHTTPRequestOperationManager alloc] initWithBaseURL:[NSURL URLWithString:baseURL]]; 
_manager.requestSerializer = [AFJSONRequestSerializer serializer]; 

[_manager POST:@"getlistings" parameters:@{@"listings":item_ids} success:^(AFHTTPRequestOperation *operation, id responseObject) { 
    NSLog(@"%@",responseObject); 
} failure:^(AFHTTPRequestOperation *operation, NSError *error) { 
    NSLog(@"%@",error); 
}]; 

item_ids是一個傳入的數組,它本質上是@ [1234,1235],只有幾個數字。 收到此請求的Web服務沒有爲$ _POST設置任何內容,但我發送的JSON確實顯示在$ HTTP_RAW_POST_DATA中。爲什麼是這樣?我是否在做出錯誤的請求,或者更有可能在服務器端出現問題?

提前致謝!

回答

0

你的AFNetworking代碼看起來很好,如果你想讓你的服務器在響應中解析JSON的話。

我不是PHP專家,但根據this answer,如果請求主體不是標準的urlencoded形式,則不會填充「$_POST」。

因此,請按照該答案中的說明解析JSON,或將requestSerializer更改爲AFHTTPRequestSerializer的實例,該實例使用標準URL編碼而不是AFJSONRequestSerializer