从iOS应用程序调用Server上的函数 – Objective C

如果您熟悉Parse.com的
Javascript SDK,那么我正在为我的iOS应用程序(Objective-c)为自己的服务器做这件事.我希望能够将一些字符串发送到我服务器上的函数,让服务器运行其函数,然后将字符串返回给应用程序或一些xml或JSON数据.

这甚至可能吗?

我是新手做这样的事情让app打电话给服务器.我已经考虑在我的服务器上打开一个端口,但一直无法找到将数据接收回iOS应用程序的方法. (我发现这个lib但它的OS X https://github.com/armadsen/ORSSerialPort).我也不确定我是否在服务器上运行了一个开放端口的功能.那么如何设置它以便我可以调用我的服务器并运行一个函数呢?

任何帮助将非常感激.

最佳答案 您只需将数据POST到服务器即可.

港口可以是你想要的任何东西.

使用域网址托管您的脚本,以便您可以公开发布网络请求.

你可以试试这个功能:

-(NSData *)post:(NSString *)postString url:(NSString*)urlString{

    //Response data object
    NSData *returnData = [[NSData alloc]init];

    //Build the Request
    NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:[NSURL URLWithString:urlString]];
    [request setHTTPMethod:@"POST"];
    [request setValue:[NSString stringWithFormat:@"%lu", (unsigned long)[postString length]] forHTTPHeaderField:@"Content-length"];
    [request setHTTPBody:[postString dataUsingEncoding:NSUTF8StringEncoding]];

    //Send the Request
    returnData = [NSURLConnection sendSynchronousRequest: request returningResponse: nil error: nil];

    //Get the Result of Request
    NSString *response = [[NSString alloc] initWithBytes:[returnData bytes] length:[returnData length] encoding:NSUTF8StringEncoding];

    bool debug = YES;

    if (debug && response) {
        NSLog(@"Response >>>> %@",response);
    }


    return returnData;
}

以下是您如何使用它:

NSString *postString = [NSString stringWithFormat:@"param=%@",param];
NSString *urlString = @"https://www.yourapi.com/yourscript.py";

NSData *returnData =  [self post:postString url:urlString];

PHP

<?php
$response=array();
if(isset($_POST['param'])){
  $response['success'] = true;
  $response['message'] = 'received param = '.$_POST['param'];
}else{
  $response['success'] = false;
  $response['message'] = 'did not receive param';
}
$json = json_encode($response);
echo $json;
点赞