用于将信息从iPhone发送到服务器的技术

时间:2013-03-27 13:18:23

标签: iphone ios django ios4

1)我正在构建一个与Boojam事件记者相同的软件。事件是从iphone记录并发送到服务器。

2)在捕获所有必需信息后,记者可以点击iphone中的发送按钮。

3)数据应发送到学校或组织的数据库服务器。

4)我需要知道什么是可以将数据从iPhone传输到服务器的技术。

范围只是我必须将Apple iphone中收集的数据发送到服务器。我使用Python语言进行逻辑。

想知道用于执行相同操作的当前技术是什么。

任何人都可以列出有关此链接的技术。

3 个答案:

答案 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-pistondjango-tastypie创建API。