iOS网络 POST原始的模拟表单上传
2015-02-16 23:05
316 查看
后台我使用的是php语言,你们也可以换成其他的语言
此种上传为模拟HTML表单上传 火狐浏览器firebug上抓取请求头的数据进行拼接
上代码ing。。。
http://pan.baidu.com/s/1eQCMbdS
此种上传为模拟HTML表单上传 火狐浏览器firebug上抓取请求头的数据进行拼接
上代码ing。。。
// // ViewController.m // POST原始的模拟表单上传 // // Created by chen on 15/2/16. // Copyright (c) 2015年 lanrw. All rights reserved. // #import "ViewController.h" @interface ViewController () @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; } - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { [self uploadFile]; } - (void)uploadFile { // 拼接以下请求 /** Content-Type multipart/form-data; boundary=8116616557813098411759479929 --8116616557813098411759479929 Content-Disposition: form-data; name="userfile"; filename="upload.html" Content-Type: text/html <!DOCTYPE html> <html > <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html;charset=utf-8"> <title>文件上传测试</title> </head> <body> <h1>文件上传</h1> <hr /> <form action="upload.php" method="post" enctype="multipart/form-data"> 请选择要上传的文件: <input name="userfile" type="file" /> <input type="submit" value="上传" /> </form> </body> </html> --8116616557813098411759479929-- */ // 自己建立一个php后端的服务器 NSURL *url = [NSURL URLWithString:@"http://localhost/post/upload.php"]; NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url cachePolicy:1 timeoutInterval:15]; request.HTTPMethod = @"post"; // boundary可随意命名 NSString *boundary = @"chen"; // 拼接请求头 [request setValue:[NSString stringWithFormat:@"multipart/form-data; boundary=%@",boundary] forHTTPHeaderField:@"Content-Type"]; // 创建可变data 后面一样拼接 NSMutableData *myData = [NSMutableData data]; NSString *str = [NSString stringWithFormat:@"--%@\n",boundary]; [myData appendData:[str dataUsingEncoding:NSUTF8StringEncoding]]; // html页面上传表单里的 <input type="file" name="userfile"> NSString *name = @"userfile"; // 上传后文件的名字 NSString *filename = @"123.png"; str = [NSString stringWithFormat:@"Content-Disposition: form-data; name=\"%@\"; filename=\"%@\"\n",name,filename]; [myData appendData:[str dataUsingEncoding:NSUTF8StringEncoding]]; str = @"Content-Type: application/octet-stream\n\n"; [myData appendData:[str dataUsingEncoding:NSUTF8StringEncoding]]; // bundle中的文件转换成二进制数据 NSURL *uploadFile = [[NSBundle mainBundle]URLForResource:@"000.png" withExtension:nil]; [myData appendData:[NSData dataWithContentsOfURL:uploadFile]]; str = [NSString stringWithFormat:@"\n\n--%@--",boundary]; [myData appendData:[str dataUsingEncoding:NSUTF8StringEncoding]]; request.HTTPBody = myData; [NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse *response, NSData *data, NSError *connectionError) { id result = [NSJSONSerialization JSONObjectWithData:data options:0 error:NULL]; NSLog(@"%@",result); }]; } @end
http://pan.baidu.com/s/1eQCMbdS
相关文章推荐
- iOS网络 POST模拟表单上传单个与多个文件(直接调用分类里的方法即可)
- java模拟post方式提交表单实现图片上传
- 使用python模拟post表单上传文件
- iOS之网络请求之AFN表单上传之form-data
- Qt HTTP网络相关GET,POST(HTTP 模拟POST 表单(multipartform)最简单和正式的方法)
- iOS基础8:自定义MyData/自定义SQLite用于网络判断,版本判断,图片缓存处理,下载或者上传的GET或POST请求,加密手段,.数据解析
- java模拟post方式提交表单实现图片上传【转】
- iOS AFN 封装POST网络请求(AFURLSessionManager) (续一) upload表单提交方法
- CURL模拟表单post提交及相关常用参数的使用(包括提交表单同时上传文件)
- java模拟表单上传文件,java通过模拟post方式提交表单实现图片上传功能实例
- HTTPCLIENT POST 模拟有上传文件和文本字段的动态表单
- HttpClient4.5.2模拟表单post提交上传文件
- HttpClien实现使用post方式模拟表单上传大文件和字符参数
- iOS多线程与网络开发之使用POST上传JSON数据 & 多值参数
- iOS开发-AFNetworking 怎样上传数据? 怎样上传模拟表单
- CURL模拟表单post提交及相关常用参数的使用(包括提交表单同时上传文件)
- 使用java ssm框架后台模拟post上传文件并提交表单数据
- iOSAFN上传图片 php接收(一)(模拟表单上传)
- IOS学习 网络 NSURLSession和POST文件上传