2010-05-22 14 views
0

Je souhaite donc écrire une servlet qui télécharge une vidéo sur un canal YouTube en utilisant l'API Java, mais je n'arrive pas à trouver un moyen de spécifier si je veux passer par un serveur proxy. J'ai vu un exemple sur ce site où quelqu'un a réussi à le faire en utilisant C#, mais les classes qu'ils utilisent ne semblent pas exister dans l'API Java. Est-ce que quelqu'un a réussi à faire cela?Téléchargement sur Youtube via un proxy à l'aide de l'API Java Java

Service YouTubeService = new YouTubeService (clientID, developerKey);

+0

Si vous fournissez un lien vers cette autre question utilisant C#, quelqu'un pourrait vous dire comment faire la même chose en Java. – Jesper

Répondre

0

Je suis nouveau ici, donc je ne peux pas commenter les messages (et un peu en retard sur ce sujet), mais Jesper, je crois que c'est l'échantillon C# que l'affiche originale parlait: How to upload to YouTube using the API via a Proxy Server

Je ne vois pas de façon "directe" de porter cet exemple à Java, puisque GDataRequestFactory ne semble pas avoir de champs liés au proxy.

J'avais également des problèmes avec la bibliothèque client Java avec proxy dans notre application. Fondamentalement, la bibliothèque prend les paramètres de proxy Java globale:

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

mais pour une raison quelconque pas partout. Pour être plus précis, même avec un serveur proxy correctement configuré en Java, l'authentification YouTube (en appelant service.setUserCredentials ("login", "pwd")) utiliserait une connexion directe et ignorerait le proxy. Mais un téléchargement de vidéo (appelant service.insert (...)) utiliserait correctement le proxy.

Avec l'aide des gens sur la liste de diffusion officielle de l'API YouTube, j'ai été capable de clouer ça. Le problème est que l'authentification est effectuée en utilisant SSL (HTTPS) et comme il existe un ensemble différent de propriétés pour le proxy HTTPS, cela n'a pas fonctionné. Le correctif est simplement mis https.proxy * propriétés ainsi (en plus de http.proxy *), de sorte que ces points à un serveur proxy valide aussi:

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