首页  >  问答  >  正文

错误 400:“不支持媒体类型‘application/json; charset=UTF-8’。”

祝您玩得开心,我使用 Google api v3 将视频上传到 YouTube。不幸的是,我从昨天开始就面临这个错误,代码或服务器没有任何更改。

我在不同部分搜索了错误文本,但没有得到任何结果。我唯一发现的是这个包和这个地址的文件 src/Http/MediaFileUpload.php 指定content-type,值为application/json;设置 charset=UTF-8。我想这就是问题所在。请指导我。

谢谢

环境详细信息

重现步骤

"error": {
    "code": 400,
    "message": "Media type 'application/json; charset=UTF-8' is not supported. ",
    "errors": [
      {
        "message": "Media type 'application/json; charset=UTF-8' is not supported. ",
        "domain": "global",
        "reason": "badRequest"
      }
    ],
    "status": "INVALID_ARGUMENT"
  }

代码示例

 $chunkSizeBytes = 15 * 1024 * 1024;
        $client->setDefer(true);
        $insertRequest = $youtube->videos->insert("status,snippet,recordingDetails", $video , [
            'notifySubscribers' => true
        ]);
        $media = new MediaFileUpload(
            $client,
            $insertRequest,
            'video/'.File::extension($videoPath),
            null,
            false,
            $chunkSizeBytes
        );
        $media->setFileSize(File::size($videoPath));

        $status = false;
        $handle = fopen($videoPath, "rb");
        while (!$status && !feof($handle)) {
            $chunk = fread($handle, $chunkSizeBytes);
            $status = $media->nextChunk($chunk);
        }
        fclose($handle);

        $client->setDefer(false);

P粉818561682P粉818561682228 天前382

全部回复(1)我来回复

  • P粉872101673

    P粉8721016732024-03-29 13:54:49

    查看代码,当 $resumable 为 false 时,媒体类型 application/json 发生(请参阅 此处此处)。

    所以我会尝试设置 $resumable = true (这是 MediaFileUpload 的第五个参数)。您可以在 large-file-upload.php

    回复
    0
  • 取消回复