-1

POST リクエストを作成し、それを使用してビデオをサーバーに送信しています。サーバー側では、ビデオをデコードし、ファイル ディレクトリに保存します。送信されたビデオが 20MB 未満の場合、すべてが期待どおりに機能し、有効な JSON 応答を取得します。それ以外の場合、応答辞書は NULL であるか、「操作を完了できませんでした。(Cocoa エラー 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>
4

1 に答える 1

0

POST リクエストに対する応答を受け取ったら、まずステータス コードを確認します。

POST リクエストが成功した場合:

ステータス コードが 200 (OK) または 204 (コンテンツなし) の場合、レスポンスの本文は空であるか、操作の結果を記述している可能性があります。どちらのステータス コードでも、リクエストは URI で識別できるリソースを作成していません。

ステータス コードが 201 (作成済み) の場合、リクエストによってサーバー上にリソースが作成され、レスポンスの本文に操作の結果が記述されている可能性があります。レスポンスには、新しいリソースを配置できるロケーション ヘッダーが含まれている必要があります。

通常、Web サービス API は、応答本文 (存在する場合) およびそのコンテンツ タイプと文字エンコーディングに関する詳細を記述します。JSON や XML など、複数の形式で送信できる場合があります。

POST リクエストが失敗した場合:

サーバーは、対応するステータス コードと、オプションでエラーに関する詳細を含む応答本文を送信します。多くの場合、サーバーは、要求の Accept ヘッダーと一致しないコンテンツ タイプで応答本文を送信することがあります。

ノート:

クライアントは、応答本文 (存在する場合) のコンテンツ タイプも常にチェックし、それに応じてデコードする必要があります。サーバー エラーの場合、コンテンツ タイプは、Accept ヘッダーで指定されたコンテンツ タイプ (application/json など) ではなく、text/html になることがよくあります。

したがって、Cocoa エラー 3840 の完全なエラーの説明をログに記録すると、指定されたテキストは「[」または「{」で始まる必要があるため、おそらく JSON ではないことがわかります。これは、サーバーから JSON ではないエラー メッセージを受け取ったことを示します。人間が判読できるようにエラー メッセージをデコードし、コンソールにログを記録して、サーバーが何を伝えているかを確認します。

于 2013-07-27T23:18:15.550 に答える