我有一个常规的基于YouTube浏览器的上传表单,如下所示。它适用于IE,Chrome和旧版本的Firefox。但是,我的Firefox 16.0.2只是挂在POST上。我已经使用Firefox 16.x在其他计算机上复制了该问题。
如果我通过将YouTube的网址从 https ://uploads.gdata.youtube.com 更改为 HTTP ://uploads.gdata.youtube.com
为了使事情变得更加奇怪,Firebug中 Net 选项卡上的请求根本没有记录。在Firefox的 Web控制台上,我可以看到请求,但响应和状态代码完全丢失。然后,如果我使用Fiddler并启用了 Decrypt HTTPS流量选项,则文件会正确上传。
任何人都有任何想法可能会发生什么或如何在没有修复问题的情况下监控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>
使用带有Google.GData.YouTube库的ASP.Net在后端生成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);
}
}
答案 0 :(得分:0)
从我的测试来看,基于YouTube浏览器的上传非常有气质,有时它很有效(1-5%几率)它大部分时间都没有,我刚刚使用Firefox 16上传了54.243.53.37/Home/Index的视频Windows 7,但我知道大部分时间它都不会初始化。
但是,禁用防火墙会增加成功上传的机会。不知道为什么会这样(当然这可能是幸运的观察)。
答案 1 :(得分:0)
由于Firefox 17现已推出且Google并未完全支持Firefox 16,因此我向使用Firefox 16的用户添加了警告,以升级到Firefox 17或使用其他浏览器。不理想,但考虑到在Firefox 16上不成功的测试用户数量,这是唯一合理的解决方案。