ASI使用紹介(Postとファイルアップロード)
3001 ワード
前節では、ASIの基本的な使用について説明し、デフォルトの使用方法はGetリクエスト方式です.質問があれば、ここをクリックしてください.Getリクエストはurlからパラメータを渡し,通常はサーバに所望のデータを「要求」する.Postリクエストは、フォームデータの提出が一般的で、リクエストデータの情報はリクエストメッセージの中で、バックグラウンドサーバがリクエスト情報を受け取った後、対応する処理を行います.例えば、ログイン操作です.この節では、ASIでのPostリクエストの使用について簡単に説明します.
ASIでPostリクエストを行うクラスは ASIFormDataRequest.
Example 1:ページ版163メールアドレス登録.
ログインに成功した場合、responseStringが戻ってきたデータは、あなたのページ版が成功したメールボックスリストページにログインしたhtmlソースコードです.
Example 2:携帯アルバムの写真をサーバーにアップロードします.
本節ではASIにおけるPostリクエストの応用を簡単に紹介し,次の節ではASIを利用してネットワークリソースのダウンロードを完了することを紹介する.
ASIでPostリクエストを行うクラスは ASIFormDataRequest.
Example 1:ページ版163メールアドレス登録.
- (void)postRequest {
NSURL *url = [NSURL URLWithString:@"http://mail.163.com/"];
self.request = [ASIFormDataRequest requestWithURL:url];
[self.request setPostValue:@"username" forKey:@"your username"];
[self.request setPostValue:@"password" forKey:@"your password"];
self.request.timeOutSeconds = 10;
__weak typeof(self.request) that = self.request;
self.request.completionBlock= ^{
NSLog(@"data:%@",that.responseString);
};
[self.request startAsynchronous];
}
ログインに成功した場合、responseStringが戻ってきたデータは、あなたのページ版が成功したメールボックスリストページにログインしたhtmlソースコードです.
Example 2:携帯アルバムの写真をサーバーにアップロードします.
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
[self uploadPictureFromAlbum];
}
#pragma mark - ( )
- (void)uploadPictureFromAlbum {
// 1.
UIImagePickerController *pickerController = [[UIImagePickerController alloc] init];
// ,
pickerController.delegate = self;
// 2. ( )
pickerController.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
// 2. ( ),
//pickerController.sourceType = UIImagePickerControllerSourceTypeCamera;
// 3.
[self presentViewController:pickerController animated:YES completion:nil];
}
#pragma mark - ,
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {
// 1. , UIImagePickerController
[picker dismissViewControllerAnimated:YES completion:nil];
//
UIImage *image = info[UIImagePickerControllerOriginalImage];
[self uploadWithImage:image];
}
#pragma mark - , ( )
- (void)uploadWithImage:(UIImage *)image {
NSURL *postUrl = [NSURL URLWithString:@"post site url"];
// 1.
ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:postUrl];
// 2.
NSData *data = UIImagePNGRepresentation(image);
[request setData:data withFileName:@"uploadfileName" andContentType:@"image/png" forKey:@"my picture"];
// 3.POST
[request setPostValue:@"Jason" forKey:@"username"];
[request setPostValue:@"123" forKey:@"password"];
// 4.
[request startAsynchronous];
// 5.
request.completionBlock = ^{
NSLog(@" ");
};
}
本節ではASIにおけるPostリクエストの応用を簡単に紹介し,次の節ではASIを利用してネットワークリソースのダウンロードを完了することを紹介する.