2010-12-20 167 views
0

我一直在嘗試使用直接上傳通過JavaAPI將視頻上傳到YouTube。我一直有一個問題,當我調用insert()方法,我得到一個IOException,使用錯誤消息通過Java API將視頻上傳到YouTube時出現IOException

「錯誤寫入請求體到服務器」

我已經驗證文件對象,我創建是正確的以及我的VideoEntry對象中的所有細節。我一直在使用Fiddler來監視來自我的機器的活動,並且沒有請求上傳API,因此問題不存在。這裏是我使用的代碼的摘要:

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); 

IOException異常是在插入通話拋出(設置爲我YouTubeService實例)和API URL看起來是正確的。

在此之前,我已經成功地使用C#API上傳此視頻,所以我知道視頻文件是有效的。

--update 這是apiURL值:

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

+0

每次都會發生嗎? – Bozho 2010-12-20 13:15:32

+0

是的,我每次嘗試運行此代碼時都會失敗 – lorddaveyjohno 2010-12-20 14:21:48

+0

我可以看到'apiUrl'是如何創建的? – 2010-12-20 16:59:50

回答

0

使某些錄像檔案實際上指向正確的本地文件。 File(String)構造函數不會驗證它實際存在。 MediaFileSource構造函數和VideoEntry.setMediaSource()方法也從不檢查文件是否有效。錯誤消息「錯誤寫入請求正文到服務器」聽起來像插入方法找不到它正試圖發送的消息正文。

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

測試文件是否存在。

0

如果您在防火牆env下並且已經在jvm系統屬性中配置了您的代理設置。在嘗試配置您的YouTube服務爲:

service.setChunkedMediaUpload(MediaService.NO_CHUNKED_MEDIA_REQUEST); 

或在您的情況

settings.setChunkedMediaUpload(MediaService.NO_CHUNKED_MEDIA_REQUEST); 

,因爲就像你說的是你YouTubeService實例。

希望這有助於。

+0

在我的代碼中使用此引發異常 – Vaibs 2012-11-16 06:26:36

相關問題