开发者社区> 问答> 正文

在视频点播中视频不存在的情况, 用什么方式能拦截到?

问题一:在视频点播中视频不存在的情况, 用什么方式能拦截到? 我用PHP的Exception 拦截不到信息
问题二:是不是有个检测工具,根据 RequestId可以看到请求的参数?

展开
收起
乐天香橙派 2023-08-08 15:21:20 61 0
2 条回答
写回答
取消 提交回答
  • 针对问题一的回答:如果已经响应之后才不存在 这种Exception 拿不到的 只能看前端抓404了
    不要跳过业务接口去操作文件 一般不会出现404
    针对问题二的回答:这是log工具 —此回答来自钉群”阿里云-VOD-视频点播-技术交流(进群先看公告)“

    2023-08-09 10:25:05
    赞同 展开评论 打赏
  • 北京阿里云ACE会长

    使用SDK的错误码进行判断
    视频点播的SDK在调用API失败时,会返回对应的错误码和错误信息。

    比如在PHP SDK中:

    调用$client->get_video_info($videoId)获取视频信息
    如果视频不存在,返回错误码为404 Video Not Found
    你可以在调用API后,判断错误码是否为404,则表示视频不存在:

    php
    Copy
    try {
    $result = $client->get_video_info($videoId);
    } catch (Exception $e) {
    if ($e->getCode() == '404') {
    // 视频不存在,处理对应的逻辑
    ...
    }
    }
    根据HTTP状态码判断
    在使用原生HTTP API调用时,如果视频不存在,会返回404 NOT FOUND的HTTP状态码。

    你可以通过捕获HTTP状态码来判断:

    php
    Copy
    $response = Unirest::get("视频点播API地址");
    if ($response->code == 404) {
    // 视频不存在
    }
    指定回调函数
    视频点播的部分API支持指定回调函数,你可以在函数中进行判断:

    php
    Copy
    $result = $client->get_video_info($videoId, function($code, $message, $data){
    if ($code == 404) {
    // 视频不存在,逻辑处理
    }
    });
    以上三种方式,都是在视频点播API的层面上进行错误判断。

    都是比捕获Exception更有针对性的方法。

    2023-08-08 21:03:55
    赞同 展开评论 打赏
来源圈子
更多
收录在圈子:
+ 订阅
问答排行榜
最热
最新

相关电子书

更多
互联网音视频点播业务云上实践 立即下载
《VoD问题排查与实战手册》 立即下载
低代码开发师(初级)实战教程 立即下载