我正在创建POST请求并使用它将视频发送到服务器。在服务器端,我解码视频,并将其保存到文件目录。如果发送的视频低于20MB,一切都按预期工作,我得到一个有效的JSON响应,否则我的响应字典为NULL或返回“操作无法完成。(Cocoa error 3840。)”
$result = mysqli insert statement;
$videoDirectory = 'userVideos/'.$unique_id.'.mp4';
$decodedVideo =base64_decode($video);
file_put_contents($videoDirectory, $decodedVideo);
if (!$result['error'])
{
$e = "register into Str33trider successfully";
print json_encode(array('results'=>$videoCaption));
exit();
}
我甚至编辑了我的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>
答案 0 :(得分:0)
收到POST请求的回复后,请先检查状态代码。
如果状态代码等于200(OK)或204(无内容),则响应正文可能为空或描述操作的结果。使用任一状态代码,请求都没有创建可由URI标识的资源。
如果状态代码等于201(已创建),则请求在服务器上创建资源,响应正文可能会描述操作的结果,并且响应应包含可以找到新资源的位置标头。
通常,Web服务API描述有关响应主体(如果有)及其内容类型和字符编码的详细信息。可能有多种格式可以发送,例如JSON或XML。
服务器将发送相应的状态代码和可选的响应正文,其中包含有关错误的详细信息。通常,服务器可以发送与请求的Accept头不匹配的内容类型的响应主体。
客户端应始终检查响应正文的内容类型(如果有)并相应地对其进行解码。在服务器错误的情况下,内容类型通常可以是text / html而不是Accept标头中指定的内容类型,例如,应用/ JSON。
因此,如果您记录Cocoa错误3840的完整错误描述,您将会读到给定的文本可能不是JSON,因为它必须以'['或'{'开头。这表明您从服务器收到的错误消息不是JSON。解码错误消息,使其可读,并将其记录到控制台,以查看服务器告诉您的内容。