如何连接到iOS应用程序中的EC2实例
我有一个AWS EC2实例和一个我创建的应用程序。该应用程序适用于那些获得偏头痛轨迹信息的人,告诉他们偏头痛的诱因是什么。现在,我希望能够将用户输入从应用程序发送到服务器,以便查看趋势。我很难连接到服务器,也无法了解如何将文件写入服务器 我写了这个方法:如何连接到iOS应用程序中的EC2实例,ios,objective-c,amazon-web-services,amazon-ec2,Ios,Objective C,Amazon Web Services,Amazon Ec2,我有一个AWS EC2实例和一个我创建的应用程序。该应用程序适用于那些获得偏头痛轨迹信息的人,告诉他们偏头痛的诱因是什么。现在,我希望能够将用户输入从应用程序发送到服务器,以便查看趋势。我很难连接到服务器,也无法了解如何将文件写入服务器 我写了这个方法: - (void) sendDataToServer:(NSString *)url :(NSString *)key : (NSString *) content{ // define your form fields here:
- (void) sendDataToServer:(NSString *)url :(NSString *)key : (NSString *) content{
// define your form fields here:
//NSString *content = @"field1=42&field2=Hello";
NSString *address = [NSString stringWithFormat:@"ssh -i %@ %@", key, url];
NSLog(@"%@", address);
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:[NSURL URLWithString:address]];
[request setHTTPMethod:@"POST"];
NSData *contentData = [content dataUsingEncoding:NSUTF8StringEncoding];
[request setHTTPBody:contentData];
NSString *postLength = [NSString stringWithFormat:@"%d",[contentData length]];
[request setValue:postLength forHTTPHeaderField:@"Content-Length"];
// generates an autoreleased NSURLConnection
NSURLConnection *conn = [[NSURLConnection alloc] initWithRequest:request delegate:self];
if (conn){
NSLog(@"connection");
}
//[NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];
[NSURLConnection sendAsynchronousRequest:request
queue:[NSOperationQueue mainQueue]
completionHandler:^(NSURLResponse *response, NSData *data, NSError *error) {
//[self doSomethingWithData:data];
if (error){
NSLog(@"ERROR");
}
}];
}
我将密钥对中的私钥放入应用程序。我如何使用它来连接?我应该不使用私钥吗?我应该换一种方式吗
我应该换一种方式吗
当然,100%,是的。你不想让人们SSH进入你的服务器,尤其是通过将你的私钥嵌入到应用程序二进制文件中。有人很容易得到它,然后对你的服务器造成严重破坏
不要这样做
相反,我会在你的实例上运行一个web服务器——这很简单,然后用PHP、Rails with Passenger、Python编写一个应用程序,不管是什么都可以将文件保存到服务器的硬盘上。正如ashack所提到的,您还需要得到一个常数,以便它保持不变
在iOS应用程序中,您需要向服务器发送POST请求。看,这基本上就是你现在所做的
不要发布您的私有SSH密钥。这是私人的,有很好的理由
我应该换一种方式吗
当然,100%,是的。你不想让人们SSH进入你的服务器,尤其是通过将你的私钥嵌入到应用程序二进制文件中。有人很容易得到它,然后对你的服务器造成严重破坏
不要这样做
相反,我会在你的实例上运行一个web服务器——这很简单,然后用PHP、Rails with Passenger、Python编写一个应用程序,不管是什么都可以将文件保存到服务器的硬盘上。正如ashack所提到的,您还需要得到一个常数,以便它保持不变
在iOS应用程序中,您需要向服务器发送POST请求。看,这基本上就是你现在所做的
不要发布您的私有SSH密钥。这是私人的,有一个很好的理由。那么,在Objective-C中,这是什么样子的呢?你可能想提出一个POST请求,@WyattMufson。把它编辑成我的答案。您已经有了很多代码,您只想删除SSH部分。另外,请确保您已经为实例分配了弹性IP地址。不要编写代码来尝试连接到公共DNS URL。因此我会向弹性IP地址发出POST请求?@Undo我在哪里可以找到资源来制作一个将文件保存到硬盘驱动器的应用程序?那么Objective-C中会是什么样子呢?你会想发出POST请求,@WyattMufson。把它编辑成我的答案。您已经有了很多代码,您只想删除SSH部分。另外,请确保您已经为实例分配了弹性IP地址。不要编写代码来尝试连接到公共DNS URL。因此我会向弹性IP地址发出POST请求?@Undo我在哪里可以找到资源来制作将文件保存到硬盘驱动器的应用程序?