5

我有一个常规的基于 YouTube 浏览器的上传表单,如下所示。它在 IE、Chrome 和旧版本的 Firefox 中运行良好。但是,我的 Firefox 16.0.2 只是挂在 POST 上。我已经用 Firefox 16.x 在其他计算机上复制了这个问题。

如果我通过将 YouTube 的 URL 从https ://uploads.gdata.youtube.com更改为http : //uploads.gdata.youtube.com 来手动覆盖 SSL,文件会正确上传。

更奇怪的是,Firebug的Net选项卡上根本没有记录该请求。在 Firefox 的Web Console上,我可以看到请求,但完全没有响应和状态代码。然后,如果我使用启用了解密 HTTPS 流量选项的 Fiddler,则文件上传正确。

任何人都知道会发生什么或如何在不解决问题的情况下监控 SSL 流量?

<!DOCTYPE html>
<html>
    <head><title>YouTube Test</title></head>
    <body>
        <form id="frmYouTube" enctype="multipart/form-data" method="post" action="https://uploads.gdata.youtube.com/action/FormDataUpload/YOU_TUBE_URL?nexturl=https%3a%2f%2fMY.DOMAIN.COM%2fDIR_1%2fDIR_2%3fid2%3dLOCAL_ID">
        <table>
            <tr><td><input type="file" name="file" /></td></tr>
            <tr><td>
                    <input type="hidden" name="token" value="MY_YOUTUBE_TOKEN" />
                    <input type="submit" value="Upload" />
            </td></tr>
        </table>
        </form>
</body>
</html>

YouTube url 和令牌是在后端使用 ASP.Net 和 Google.GData.YouTube 库生成的。这是该代码的一部分:

public class BaseModel
{

    public string SITE_YOUTUBE_APP_NAME = "";
    public string SITE_YOUTUBE_DEV_KEY = "";
    public string SITE_YOUTUBE_USERNAME = "";
    public string SITE_YOUTUBE_PASSWORD = "";
    public string YOUTUBE_CATEGORY = "";

    public FormUploadToken FormToken;

    public void Load()
    {

        YouTubeRequestSettings settings = new YouTubeRequestSettings(
            SITE_YOUTUBE_APP_NAME, SITE_YOUTUBE_DEV_KEY,
            SITE_YOUTUBE_USERNAME, SITE_YOUTUBE_PASSWORD);

        YouTubeRequest request = new YouTubeRequest(settings);

        Video newVideo = new Video();

        string title = "Test Title";

        string description = "Test Description";

        newVideo.Title = title;
        newVideo.Tags.Add(new MediaCategory(YOUTUBE_CATEGORY, YouTubeNameTable.CategorySchema));
        newVideo.Keywords = "test";
        newVideo.Description = description;
        newVideo.YouTubeEntry.Private = false;

        FormToken = request.CreateFormUploadToken(newVideo);
    }
}
4

2 回答 2

0

根据我的测试,基于 YouTube 浏览器的上传非常喜怒无常,有时它可以正常工作(1-5% 的机会),但大多数时候它不起作用,我只是在 Windows 7 上使用 Firefox 16 使用 54.243.53.37/Home/Index 上传了一个视频,但我知道大多数时候它不会初始化。

但是,禁用防火墙会增加成功上传的机会。不知道为什么会这样(当然这可能只是幸运的观察)。

于 2012-11-08T13:32:45.917 回答
0

由于现在可以使用 Firefox 17 并且 Google 并不完全支持 Firefox 16 的此功能,因此我添加了警告,提醒使用 Firefox 16 的用户升级到 Firefox 17 或使用其他浏览器。不理想,但考虑到在 Firefox 16 上失败的测试用户数量,这是唯一合理的解决方案。

于 2012-12-20T19:14:22.607 回答