我正在尝试使用与下载文件类似的策略上传一个(可能很大的)文件 -- i. e.使用流。
我将 NSMutableUrlRequest
的 HTTP 正文设置为:
[request setHTTPBody:[params dataUsingEncoding:NSUTF8StringEncoding]];
然后将其正文流设置为:
[request setHTTPBodyStream:inputStream];
但是请求的主体被设置为 nil...
最佳答案
您只能将 NSInputStream
或 NSData
对象设置为请求主体,不能同时设置两者。
您可能试图完成的是设置多部分表单请求。使用 NSInputStream 作为 body,老实说,出于多种原因,这是一项非常具有挑战性的任务。我建议使用第三方库。
一个可以发送多部分表单请求的网络库的实现,有一个部分有一个 NSSInputStream
作为部分主体,将需要一堆帮助类,可能包含超过 5000 行代码。查看 AFNetworking,了解实现多部分请求时所需的复杂性。
关于ios - NSUrlConnection - 上传文件并发送 POST 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21309555/