在iOS开发中使用POST请求上传文件分为三步:
1.设置请求行
NSURL *url=[NSURL URLWithString:[NSString stringWithFormat:@""]];
2.设置post请求
post请求抽出到NSMutableURLRequest+PostFile.h这个类中
另外在iOS开发中对于图片或者文件的上传,Xcode并没有进行封装,所以需要自己手动的在代码中拼接请求体,请求体的格式如下:
请求体格式:
\r\n--Boundary+72D4CD655314C423\r\n // 分割符,以“--”开头,后面的字随便写,只要不写中文即可
Content-Disposition: form-data; name="uploadFile"; filename="001.png"\r\n // 这里注明服务器接收图片的参数(类似于接收用户名的userName)及服务器上保存图片的文件名
Content-Type:image/png \r\n // 图片类型为png
Content-Transfer-Encoding: binary\r\n\r\n // 编码方式
// 这里是空一行,必不可少!!
... contents of boris.png ... // 图片数据部分
\r\n--Boundary+72D4CD655314C423--\r\n // 分隔符后面以"--"结尾,表明结束
其中“\r\n” 表示换行。
NSMutableURLRequest+PostFile.m文件中实现封装的具体代码如下:
#import "NSMutableURLRequest+PostFile.h"
@implementation NSMutableURLRequest (PostFile)
static NSString *boundary=@"AlvinLeonPostRequest";
+(instancetype)requestWithURL:(NSURL *)url andFilenName:(NSString *)fileName andLocalFilePath:(NSString *)localFilePath{
//post请求