多部分表单上传和NSURLSession.uploadTaskWithRequest之间的区别

And*_*ree 5 multipartform-data ios nsurlsession

来自Web编程世界,我非常适合处理多部分表单请求上传文件.但是,在iOS中,我们有一个NSURLSession用方法调用的东西uploadTaskWithRequest,它似乎是调用图像上传等方法.

你能解释两种方法之间的区别,多部分表单上传 vs uploadTaskWithRequest?如果我已经有一个处理多部分表单上传的后端,我可能需要进行哪些调整以便它也支持uploadTaskWithRequest

Rob*_*Rob 11

uploadTaskWithRequest简单地发送NSData,文件或流作为请求的主体.它没有做任何事情.它的好处是它可以用于后台会话.

因此,如果您有预期multipart/form-data请求的Web服务,您必须自己构建该请求(除非您使用AFNetworking或Alamofire之类的东西为您执行此操作).一旦你建立了一个要求,你既可以使用dataTaskWithRequest(已设置HTTPBodyNSMutableURLRequest)或uploadTaskWithRequest(在这种情况下你不设置HTTPBody,而是将它作为一个参数uploadTaskWithRequest).

顺便说一下,像查尔斯这样的工具在这些情况下非常有用,让你观察幕后发生的事情.

  • 首先必须构建多部分主体(http://stackoverflow.com/a/26163136/1271826或http://stackoverflow.com/a/24252378/1271826),然后将其作为`data`参数提供给` uploadTaskWithRequest`.或者,如果您尝试使用后台会话(不允许"NSData"再现)执行此操作,则将该多部分数据保存为文件,然后将该文件作为参数提供给"uploadTaskWithRequest". (3认同)