laravel 错误400:“Media type 'application/json;不支持'charset=UTF-8',”

ukxgm1gy  于 2023-05-19  发布在  其他
关注(0)|答案(1)|浏览(259)

有一个很好的时间,我使用谷歌API v3上传视频到YouTube。不幸的是,我从昨天开始就面临这个错误,代码或服务器没有任何变化。
我搜索了错误文本的不同部分,但没有得到任何结果。我发现的唯一一件事是,在这个包和这个地址src/Http/MediaFileUpload.php的文件中,指定了content-type,其值是application/json; charset=UTF-8。我想这就是问题所在。请指引我。
谢谢你

环境详情
  • 操作系统:Linux
  • PHP版本:8.1.8
  • 软件包名称和版本:“google/apiclient”:“^2.13.2”
  • Laravel:^9.0
复制步骤
"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);
izkcnapc

izkcnapc1#

查看代码,当$resumable为false时,会出现媒体类型application/json(参见此处和此处)。
所以我会尝试设置$resumable = true(这是MediaFileUpload的第五个参数)。你可以在large-file-upload.php中看到一个例子。

相关问题