Цель C — передача параметров в веб-сервис (cakephp) с использованием библиотеки AFNetworking 2.x

Я пытаюсь вызвать метод веб-сервиса и передать ему параметр с помощью AFNetworking 2.x. Я могу получить доступ к методу (установлен правильный маршрут в cakephp), но у меня проблема с параметрами. Я наверняка что-то здесь упускаю, и я буду признателен за любые предложения как на стороне сервера, так и на стороне obj-c.

iOS сторона:

AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
NSDictionary *parameters = @{@"videoid": @"123", @"vote": @"123", @"udid": @"123"};

manager.requestSerializer = [AFHTTPRequestSerializer serializer];
manager.responseSerializer = [AFHTTPResponseSerializer serializer];
[manager POST:@"my_url" parameters:parameters success:^(AFHTTPRequestOperation *operation, id responseObject) {

NSString *string = [[NSString alloc] initWithData:responseObject encoding:NSUTF8StringEncoding];

NSLog(@"%@", string);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"Error: %@", error);
}];

На стороне сервера:

class APIController extends AppController {

public $uses = array (
'MobileVote','Video'

);

function vote(){

$this->autoRender = false;
$response = array ();

$param = $this->request->query;
$videoid =  $this->request->query['videoid'];
$voteType =  $this->request->query['vote'];
$udid =  $this->request->query['udid'];

if(empty($udid) || empty($voteType) || empty($videoid) ){

$response['status'] = "err";
$response['msg'] = "missing parameters";
(...)

Ответ сервера:

Notice (8): Undefined index: videoid [APP/Controller/APIController.php, line 27]
Notice (8): Undefined index: vote [APP/Controller/APIController.php, line 28]
Notice (8): Undefined index: udid [APP/Controller/APIController.php, line 29]
{"status":"err","msg":"missing parameters"}

1

Решение

Я смог решить проблему. Оказывается, я должен отправить запрос GET вместо POST.

Если у вас есть проблема с подключением API, я настоятельно рекомендую использовать это или одноименное расширение Chrome — https://www.getpostman.com/

0

Другие решения

Других решений пока нет …