Objective C - 使用 AFNetworking 2.x 库将参数传递给 web 服务 (cakephp)
Objective C - passing parameters to webservice (cakephp) using AFNetworking 2.x library
我正在尝试调用 Web 服务方法并使用 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"}
我能够解决问题。原来我必须发送 GET 请求而不是 POST。
如果您遇到 API 连接问题,我强烈建议您使用此扩展程序或类似的 chrome 扩展程序 - https://www.getpostman.com/
我正在尝试调用 Web 服务方法并使用 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"}
我能够解决问题。原来我必须发送 GET 请求而不是 POST。