【问题标题】:Youtube api (c#) strange errorYoutube api (c#) 奇怪的错误
【发布时间】:2012-06-09 09:48:48
【问题描述】:

我已经为这个问题困扰了 3 天,但我无法找到任何解决方案。对不起,如果这里不是问这种问题的地方。但请相信我,我没有其他选择。

我有一个应用程序,用户可以在其中上传视频,然后通过 youtube api 将它们上传到某个 youtube 频道。此应用程序托管在亚马逊主机中。到目前为止很棒!

由于 ssl 的原因,我必须将此应用程序部署在不同的主机上。所以我做了一个我的主机的确切实例。但问题是当我尝试通过 youtube api 上传时出现此错误:

远程服务器返回错误:(403) Forbidden。

我所有的部署文件都是从一台主机复制粘贴到另一台主机。主机的结构和配置是完全一样的(就像我之前提到的它是一个精确的实例)。

如果你们中的一些人有任何想法,我将不胜感激。再次抱歉,如果这是发布此问题的错误位置。

谢谢

更新

我用当前版本更新了 youtube dll,我收到了这条消息:

凭据无效

奇怪的是,我只在特定的 youtube/google 帐户中收到此消息。在其他所有帐户中,我都尝试正确上传视频。

帐户可能有问题?

【问题讨论】:

    标签: c# youtube-api


    【解决方案1】:

    "403 Forbidden 响应的 HTTP 正文应包含 XML 错误描述及其具体原因。”

    假设您使用的是 HttpWebRequest。使用 WebException.Response 获取正文并记录 xml 响应。

    try
    {
        var http = (HttpWebRequest)WebRequest.Create("youtube api");
        using (var resp = http.GetResponse())
        {
            //Handle api response
        }
    }
    catch (WebException we)
    {
        if (we.Response == null)
            throw; //Rethrow because it doesn't have a body.
    
        var resp = (HttpWebResponse)we.Response;
        if (resp.StatusCode != HttpStatusCode.Forbidden)
            throw; //We are only handling forbidden, rethrow other statuses.
    
        using (var sr = new StreamReader(resp.GetResponseStream()))
        {
            var xml = sr.ReadToEnd();
            //Log xml here
        } 
    }
    

    【讨论】:

      【解决方案2】:

      好的,我想出了问题所在。

      我尝试从亚马逊服务器手动登录 youtube,令我惊讶的是它要求输入验证码。

      输入验证码后,一切正常!

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-08-11
        • 1970-01-01
        • 1970-01-01
        • 2017-02-12
        • 2011-07-13
        • 2015-08-09
        • 2014-07-29
        • 2016-07-09
        相关资源
        最近更新 更多