POSTをWebサーバーに送信したい、かなり基本的な内部iOSアプリがあります。基本的にはたくさんのボタンがあり、押すボタンに応じて、事前定義された「メッセージ」が Web サーバーに送信されます。
ボタンを押すと、別のビューに移動し、押したボタンを選択していただきありがとうございますと表示されます。また、事前定義されたメッセージを Web サーバーに送信し、フォーマットしてから、静的な電子メール アドレスに電子メールで送信したいと考えています。
これは私がこれまでに持っているものです.. POSTを送信するための最良の方法を見つけようとしています. 私がセットアップした方法は、それを行うための最良の方法ですか? または、これを行うためのよりスマートな方法はありますか?
乱雑で整理されていない場合は申し訳ありません..私はiOS開発に非常に慣れていません。
@interface DrinkViewController () {
NSString *buttonlabel;
NSString *urlEncodeUsingEncoding;
}
@end
@implementation DrinkViewController
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
// Custom initialization
}
return self;
}
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view.
}
- (void)viewDidUnload
{
[super viewDidUnload];
// Release any retained subviews of the main view.
}
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
return YES;
}
-(IBAction)selectButton:(id)sender{
NSLog(@"Button Pressed:%d",((UIButton *)sender).tag);
NSString *dvalue;
switch (((UIButton *)sender).tag) {
case 1:
dvalue = @"Button 1";
break;
case 2:
dvalue = @"Button 2";
break;
case 3:
dvalue = @"Button 3";
break;
case 4:
dvalue = @"Button 4";
break;
case 5:
dvalue = @"Button 5";
break;
case 6:
dvalue = @"Button 6";
break;
case 7:
dvalue = @"Button 7";
break;
}
buttonlabel = dvalue;
[self performSegueWithIdentifier:@"selectionTransition" sender:sender];
NSData *postData = [buttonlabel dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES];
NSString *postLength = [NSString stringWithFormat:@"%d", [postData length]];
NSMutableURLRequest *request = [NSMutableURLRequest alloc];
[request setURL:[NSURL URLWithString:@"http://www.abc.com/form.php"]];
[request setHTTPMethod:@"POST"];
[request setValue:postLength forHTTPHeaderField:@"Content-Length"];
[request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];
[request setHTTPBody:postData];
NSLog(@"POST: %@ sent to %@", buttonlabel, request);
}
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([[segue identifier] isEqualToString:@"selectionTransition"]) {
NSLog(@"%@", buttonlabel);
// Get destination view
DetailViewController *vc = [segue destinationViewController];
// Pass the information to your destination view
[vc setLabelValue:buttonlabel];
}
}
@end