从 iOS 应用调用服务器上的函数 - Objective C
Call function on Server from iOS app - Objective C
如果您熟悉 Parse.com 的 Javascript SDK,这就是我要为我的 iOS 应用程序(Objective-c ).我希望能够将一些字符串发送到我服务器上的函数,让服务器 运行 它的函数,然后 return 一个字符串到应用程序或一些 xml 或 JSON数据。
这可能吗?
我不熟悉做这样的事情,让应用程序调用服务器。我研究过在我的服务器上打开一个端口,但一直无法找到将数据接收回 iOS 应用程序的方法。 (我找到了这个库,但它用于 OS X https://github.com/armadsen/ORSSerialPort)。我也不确定我是否有一个函数 运行 在服务器上有一个开放的端口。那么我该如何设置才能调用我的服务器并 运行 一个函数?
如有任何帮助,我们将不胜感激。
您只需要POST数据到您的服务器。
端口可以是任何你想要的。
使用域 url 托管您的脚本,以便您可以公开进行网络请求。
你可以试试这个功能:
-(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;
如果您熟悉 Parse.com 的 Javascript SDK,这就是我要为我的 iOS 应用程序(Objective-c ).我希望能够将一些字符串发送到我服务器上的函数,让服务器 运行 它的函数,然后 return 一个字符串到应用程序或一些 xml 或 JSON数据。
这可能吗?
我不熟悉做这样的事情,让应用程序调用服务器。我研究过在我的服务器上打开一个端口,但一直无法找到将数据接收回 iOS 应用程序的方法。 (我找到了这个库,但它用于 OS X https://github.com/armadsen/ORSSerialPort)。我也不确定我是否有一个函数 运行 在服务器上有一个开放的端口。那么我该如何设置才能调用我的服务器并 运行 一个函数?
如有任何帮助,我们将不胜感激。
您只需要POST数据到您的服务器。
端口可以是任何你想要的。
使用域 url 托管您的脚本,以便您可以公开进行网络请求。
你可以试试这个功能:
-(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;