Ios 当我通过POST发送大于20MB的视频文件时,为什么json响应为空?

Ios 当我通过POST发送大于20MB的视频文件时,为什么json响应为空?,ios,post,json,Ios,Post,Json,我正在创建一个POST请求,并使用它向服务器发送视频。在服务器端,我解码视频,并将其保存到文件目录中。如果发送的视频低于20MB,一切正常,并且我得到了有效的JSON响应,否则我的响应字典为NULL或返回“操作无法完成。(Cocoa错误3840)。” 我甚至编辑了我的apache配置文件 <IfModule mod_php5.c> php_value post_max_size 200M php_value upload_max_filesize 200M p

我正在创建一个POST请求,并使用它向服务器发送视频。在服务器端,我解码视频,并将其保存到文件目录中。如果发送的视频低于20MB,一切正常,并且我得到了有效的JSON响应,否则我的响应字典为NULL或返回“操作无法完成。(Cocoa错误3840)。”

我甚至编辑了我的apache配置文件

   <IfModule mod_php5.c>
   php_value post_max_size 200M
   php_value upload_max_filesize 200M
   php_value memory_limit 320M
   php_value max_file_uploads 200M
   php_value max_execution_time 30000
   php_value max_input_time 259200
   php_value session.gc_maxlifetime 1200
   </IfModule>

php_值后最大尺寸200M
php\u值上传\u最大\u文件大小为200M
php_值内存_限制320M
php_值最大值_文件_上传200M
php_值最大执行时间30000
php_值最大输入时间259200
php_value session.gc_maxlifetime 1200

当您收到POST请求的响应时,首先检查状态代码

如果POST请求成功: 如果状态代码等于200(正常)或204(无内容),则响应正文可能为空或描述操作结果。无论使用哪种状态代码,请求都没有创建可由URI标识的资源

如果状态代码等于201(已创建),则在服务器上创建资源的请求和响应正文可能会描述操作的结果,并且响应应包含可定位新资源的位置标头

通常,web服务API描述有关响应主体(如果有)及其内容类型和字符编码的详细信息。可以发送的格式可能不止一种,例如JSON或XML

如果POST请求失败: 服务器将发送一个相应的状态代码和一个包含错误详细信息的响应正文(可选)。通常,服务器可能会发送内容类型与请求的Accept标头不匹配的响应正文

注: 客户端还应始终检查响应主体的内容类型(如果有),并相应地对其进行解码。如果出现服务器错误,内容类型通常可能是text/html,而不是Accept头中指定的内容类型,例如application/json


因此,如果您记录Cocoa错误3840的完整错误描述,您将看到给定的文本可能不是JSON,因为它必须以“[”或”开头{'。这表示您从服务器收到了一条非JSON的错误消息。请对错误消息进行解码,使其可读,并将其记录到控制台,以查看服务器告诉您的信息。

看起来您已更改了.htaccess设置,php.ini中的设置会导致您死亡吗?请通过php检查我的设置信息显示upload_max_filesize 200M。在php.ini中还有什么我应该寻找的吗?我怀疑base64_解码的时间对于较大的视频来说太长了,但我不确定:(这与iOS有什么关系?你说的“json响应为空”是什么意思?您可能是说HTTP POST请求中的正文数据为空吗?请求的json响应中的字典为空,或者我得到以下响应:操作无法完成。(Cocoa错误3840。)好的,AFJSONREquestOperation失败,但操作状态代码仍然是200。我不知道为什么失败。谢谢,我会尝试找出发生了什么。如果我对这行进行注释,我总是会得到一个有效的响应文件内容($videoDirectory,$decodedVideo);AFJSONRequestOperation期望JSON作为响应。因此,当您的响应有点“漠不关心”时,它就不太合适了您的web服务行为也可能不正确。请使用较低级别的AFNetworking,或者直接使用NSURLConnection实现POST请求,并根据响应的内容类型对响应进行解码。
   <IfModule mod_php5.c>
   php_value post_max_size 200M
   php_value upload_max_filesize 200M
   php_value memory_limit 320M
   php_value max_file_uploads 200M
   php_value max_execution_time 30000
   php_value max_input_time 259200
   php_value session.gc_maxlifetime 1200
   </IfModule>