1)我正在构建一个与Boojam事件记者相同的软件。事件是从iphone记录并发送到服务器。
2)在捕获所有必需信息后,记者可以点击iphone中的发送按钮。
3)数据应发送到学校或组织的数据库服务器。
4)我需要知道什么是可以将数据从iPhone传输到服务器的技术。
范围只是我必须将Apple iphone中收集的数据发送到服务器。我使用Python语言进行逻辑。
想知道用于执行相同操作的当前技术是什么。
任何人都可以列出有关此链接的技术。
答案 0 :(得分:2)
您需要在服务器上创建Web服务。 iphone会将数据“上传”到这个网络服务。
在Python中有很多方法可以做到这一点,这取决于你是否使用web development framework。你真的应该使用一个。对于这类任务来说,流行的是django和flask。
在iOS方面,您需要使用NSURLRequest
将数据发布到服务器。
答案 1 :(得分:2)
通常从您的应用程序中构建您需要的内容,序列化为json并将其传递给您的api。这是我的一个示例,但它与服务器进行通信并返回一个简单的句子。这只是为了说明如何在xcode中完成一些操作。 (这是为了询问和接收数据,但你从中得到了想法)
以下是.h和.m文件。
//Step 1, add NSURLConnectionDataDelegate
//.h
@interface ViewController : UIViewController<NSURLConnectionDataDelegate>
@property (strong, nonatomic) IBOutlet UILabel *answer;
@end
#import "ViewController.h"
@interface ViewController ()
{//step 2 local data objects
NSMutableData*webData;
NSURLConnection*connection;
}
@end
@implementation ViewController
- (void)viewDidLoad
{
[super viewDidLoad];
//Step 8 call (send) the request
[self getData];
// Do any additional setup after loading the view, typically from a nib.
//NSDictionary*dict=[NSJSONSerialization se]
}
//Step 3 implement this method
-(void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response{
[webData setLength:0];
}
//Step 4 append the connection data to your object
-(void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data{
[webData appendData:data];
}
//Step 5 Process results from request (called automatically when the data arrives)
-(void)connectionDidFinishLoading:(NSURLConnection *)connection{
//Main parse
//Web data
NSError*error;
//Dictionary serialized (processed) using JSON (Way of encoding data from a web request)
NSDictionary*data=[NSJSONSerialization JSONObjectWithData:webData options:0 error:&error];
//If data is nil, then print error
if (data==nil) {
NSLog(@"%@",error);
}
//Print the data
NSLog(@"%@",data);
//Get the numerical result from the dictionary key name
NSNumber*num=[data valueForKey:@"name"];
//Convert number to string
NSString*label=[num stringValue];
//Set the label to this result
_answer.text=label;
}
//Step 7, actually initialize the request
-(void)getData{
//I will break this down as if it where a generic method
//Connect to the index.php file via this URL
//Localhost/tutorials is the XAMPP folder on your computer
//index.php is the php file
//getLabel(int number){}
//?f=getLabel (calling this method in the php file)
//number=900
//&value=900 is the parameter
NSURL*url=[NSURL URLWithString:@"http://localhost/tutorials/index.php?f=getLabel&value=900"];
//In the php file it does number*number and returns the results
//URL request
NSURLRequest*request=[NSURLRequest requestWithURL:url];
//Set the connection
connection = [NSURLConnection connectionWithRequest:request delegate:self];
if (connection) {
webData=[[NSMutableData alloc]init];
}
//*****Results of this request are processed by step 5
}//Step 6, in case data connection fails
-(void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error{
NSLog(@"fail");
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end
答案 2 :(得分:2)
您需要的唯一技术JSON
用于发送/接收收集的数据。在django端,您需要实施API以允许您的django应用程序能够发送/接收此类请求。您可以使用django-piston
或django-tastypie
创建API。