AFNetworking перегружает почтовый параметр - PullRequest
3 голосов
/ 15 марта 2012

Я мигрирую из ASIHTTPRequest в AFNetworking и столкнулся с проблемой.

Я пытаюсь поразить API запросом, который перегружает параметр post. Ранее я использовал ASIFormDataRequest для этого и использовал этот код для обновления 3 идентификаторов одновременно.

// ASIHTTPRequestCode
[request addPostValue:@"value1" forKey:@"id"];
[request addPostValue:@"value2" forKey:@"id"];
[request addPostValue:@"value3" forKey:@"id"];

Поскольку AFNetworking использует NSDictionary для хранения пар «ключ-значение», не совсем понятно, как это сделать. Есть идеи?

Ответы [ 3 ]

1 голос
/ 15 марта 2012

Я не могу сразу увидеть прямой способ сделать это с AFNetworking, но это возможно сделать.

Если вы посмотрите на код для AFHTTPClient requestWithMethod, вы увидите эту строку, котораяэто тот, который устанавливает тело запроса для хранения параметров:

 [request setHTTPBody:[AFQueryStringFromParametersWithEncoding(parameters, self.stringEncoding) dataUsingEncoding:self.stringEncoding]];

По сути, вы можете передать пустой словарь в requestWithMethod для параметров, затем он вернется, сам вызовет request setHTTPBody, составивСтрока запроса самостоятельно аналогична тому, как это делает AFQueryStringFromParametersWithEncoding.

0 голосов
/ 14 ноября 2012

Я столкнулся с подобной проблемой, но решил ее, обновив URL. Я добавил параметры, которые мне нужно отправить с URL-адресом, и установил «параметры на ноль»

поэтому URL-адрес стал чем-то вроде

server\url.htm?data=param1&data=param2&data=param3

и отправил ноль как paramDictionary

[request setHTTPBody:[AFQueryStringFromParametersWithEncoding(nil, self.stringEncoding) dataUsingEncoding:self.stringEncoding]];
0 голосов
/ 15 марта 2012

Вы можете построить запрос следующим образом:

NSURL *url = [NSURL URLWithString:@"http://www.mydomain.com/"];
AFHTTPClient *httpClient = [[AFHTTPClient alloc] initWithBaseURL:url];

NSDictionary *postValues = [NSDictionary dictionaryWithObject:[NSString stringWithFormat:@"%@,%@,%@",@"value1",@"value2",@"value3"] forKey:@"id"];

NSMutableURLRequest *request = [httpClient requestWithMethod:@"POST" path:@"/path/to/your/page.php" postValues];
...