2010-12-20 149 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

相关问题