-1

1)Boojamインシデントレポーターと同じソフトウェアを構築しています。インシデントはiPhoneから記録され、サーバーに送信されます。

2)必要な情報をすべて取得した後、レポーターはiPhoneの送信ボタンをクリックすることになっています。

3)データは学校または組織のデータベースサーバーに送信する必要があります。

4)私が必要としたのは、iPhoneからサーバーにデータを転送するために利用できるテクノロジーを知ることです。

スコープは、AppleiPhoneで収集したデータをサーバーに送信する必要があるということです。ロジックにはPython言語を使用しています。

同じことを実行するために使用されている現在のテクノロジーは何かを知りたい。

このリンクに関するテクノロジーを誰かにリストしてもらえますか?

4

3 に答える 3

2

サーバー上にWebサービスを作成する必要があります。iPhoneはデータをこのWebサービスに「アップロード」します。

Pythonでこれを行うには多くの方法があり、Web開発フレームワークを使用しているかどうかによって異なります。あなたは本当にそれを使うべきです。人気のあるものは、この種のタスクのためのdjangoとflaskです。

NSURLRequestiOS側では、サーバーにデータを投稿するためにを使用する必要があります。

于 2013-03-27T13:26:11.987 に答える
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
于 2013-03-27T13:27:32.687 に答える
2

必要なテクノロジーはJSON、収集されたデータを送受信するためだけです。django側では、APIを実装して、djangoアプリケーションがそのようなリクエストを送受信できるようにする必要があります。django-pistonまたはを使用django-tastypieしてAPIを作成できます。

于 2013-03-27T15:35:07.230 に答える