iOS网络之08关于原生的文件上传

文件上传:(只能用POST请求)

由于原生的文件上传过于繁琐,不建议深究

  • 其实文件上传的实质就是发送一个POST请求,根据要求设置好请求体然后发送就可以;
  • 但是请求体的格式要求很高,需要一一对应,任何一处错误就会发送失败

1> 设置请求头:告诉服务器请求体里面内容的格式,文件参数

[request setValue:@"multipart/form-data; boundary=zhangdanfeng" forHTTPHeaderField:@"Content-Type"];

2>设置请求体:存放参数(文件参数和非文件参数)
这个过于复杂,建议直接使用AFN,参照AFN的使用那篇文章

3> 结束标记:参数结束的标志

[body appendData:[@"--zhangdanfeng--\r\n" dataUsingEncoding:NSUTF8StringEncoding]];

4> MIMETYPE的获取:

- (NSString *)MIMEType:(NSURL *)url{
    //    NSURL *url = [[NSBundle mainBundle] URLForResource:@"01.txt" withExtension:nil];
    NSURLRequest *request = [NSURLRequest requestWithURL:url];
    NSURLResponse *response = nil;
    [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:nil];
    return response.MIMEType;
}

你可能感兴趣的:(iOS网络之08关于原生的文件上传)