2010-12-20 6 views
0

Ich habe versucht, Videos über DirectAPloading über JavaAPI auf YouTube hochzuladen. Ich habe ein Problem ist, wenn ich den Einsatz() -Methode aufrufen, erhalte ich eine IOException mit der FehlermeldungIOException beim Hochladen von Videos auf YouTube über die Java-API

„Fehler beim Schreiben der Anfrage Körper an den Server“

ich überprüft haben, dass die Datei-Objekt, das ich die Schaffung bin ist genauso korrekt wie alle Details in meinem VideoEntry-Objekt. Ich habe Fiddler verwendet, um die Aktivität von meinem Computer zu überwachen, und es wird keine Anfrage an die Upload-API gestellt, so dass das Problem nicht da ist. Hier ist eine Zusammenfassung des Codes Ich verwende:

VideoEntry newVideo = new VideoEntry(); 
//Defined video properties such as title and description here. 
MediaFileSource ms = new MediaFileSource(videoFile, "video/flv"); 
newVideo.setMediaSource(ms); 
VideoEntry createdEntry = settings.insert(new URL(apiUrl), newVideo); 

Die IOException auf dem Einsatz Anruf ausgelöst wird (Einstellungen ist mein YouTubeService Instanz) und die API-URL erscheint als korrekt.

Zuvor war es mir gelungen, dieses Video mit der C# API hochzuladen, damit ich weiß, dass die Videodatei gültig ist.

--update Dies ist der apiURL Wert:

http://uploads.gdata.youtube.com/feeds/api/users/default/uploads

+0

passiert es jedes Mal? – Bozho

+0

Ja, jedes Mal, wenn ich versuche, diesen Code auszuführen, schlägt er fehl – lorddaveyjohno

+0

Kann ich sehen, wie "apiUrl" erstellt wird? –

Antwort

0

Sie sicher, dass videofile Punkte tatsächlich auf die richtige lokale Datei. Der Datei (String) -Konstruktor wird nicht überprüfen, dass es tatsächlich vorhanden ist. Der MediaFileSource-Konstruktor und die VideoEntry.setMediaSource() -Methode überprüfen auch nie, dass die Datei gültig ist. Die Fehlermeldung "Fehler beim Schreiben des Anforderungstitels an den Server" klingt so, als ob die Einfügemethode den Hauptteil der Nachricht, die sie senden möchte, nicht finden kann.

File videoFile = new File("..."); 
if (videoFile.exists() == false) { 
    System.err.println("FAIL"); 
} 

um zu testen, ob die Datei existiert.

0

Wenn Sie unter einer Firewall env sind und Ihre Proxy-Einstellungen in den Systemeigenschaften von jvm konfiguriert haben. Der Versuch die Konfiguration des youtube-Service als:

service.setChunkedMediaUpload(MediaService.NO_CHUNKED_MEDIA_REQUEST); 

oder in Ihrem Fall

settings.setChunkedMediaUpload(MediaService.NO_CHUNKED_MEDIA_REQUEST); 

da, wie Sie sagen, ist Ihre YouTubeService Instanz.

hoffe das hilft.

+0

mit diesem in meinem Code löst Ausnahme – Vaibs

Verwandte Themen