0

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

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

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

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

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

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

谢谢

更新

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

无效证件

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

也许是帐户有问题?

4

2 回答 2

0

“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
    } 
}
于 2012-06-09T10:02:15.027 回答
0

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

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

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

于 2012-06-21T09:54:45.330 回答