0

所以我想编写一个 servlet,它使用 Java API 将视频上传到 youtube 频道,但我似乎找不到指定我想通过代理服务器的方法。我在这个网站上看到了一个例子,有人设法使用 C# 做到这一点,但他们使用的类似乎不存在于 Java API 中。有没有人成功地做到了这一点?

YouTubeService 服务 = new YouTubeService(clientID, developerKey);

4

1 回答 1

1

我是新来的,所以我无法对帖子发表评论(关于这个话题有点晚了),但是 Jesper,我相信这是原始发帖人谈论的 C# 示例:如何使用 API 上传到 YouTube通过代理服务器

不过,我看不到将该示例移植到 Java 的“直接”方式,因为 GDataRequestFactory 似乎没有任何与代理相关的字段。

我在我们的应用程序中也遇到了带有代理的 Java 客户端库的问题。基本上,该库选择全局 Java 代理设置:

System.getProperty("http.proxyHost");
System.getProperty("http.proxyPort"); 

但由于某种原因并非无处不在。更准确地说,即使在 Java 中正确配置了代理服务器,YouTube 身份验证(调用 service.setUserCredentials("login", "pwd"))也会使用直接连接并忽略代理。但是视频上传(调用 service.insert(...))会正确使用代理。

在官方 YouTube API 邮件列表中的人们的帮助下,我能够确定这一点。问题是身份验证是使用 SSL (HTTPS) 执行的,并且由于 HTTPS 代理有一组不同的属性,所以这不起作用。修复方法是简单地设置https.proxy*属性以及(除了http.proxy*),以便这些也指向一个有效的代理服务器:

System.getProperty("https.proxyHost");
System.getProperty("https.proxyPort"); 
于 2010-11-15T17:52:40.053 回答