2010-12-20 13 views
0

ダイレクトアップロードを使用してJavaAPI経由でYouTubeにビデオをアップロードしようとしました。私は私が作成していますFileオブジェクトことを確認したJava API経由でYouTubeにビデオをアップロードする際のIOException

()メソッド、私はエラーメッセージを表示してIOExceptionが取得

「サーバーへのリクエストボディの書き込みエラー」の挿入を呼び出すとき、私は問題を抱えていますVideoEntryオブジェクトのすべての詳細と同様に正しいです。私は自分のマシンからのアクティビティを監視するためにFiddlerを使用していましたが、アップロードAPIは要求されていないので問題はありません。 IOExceptionが挿入呼び出しでスローされ

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

(設定私のYouTubeServiceインスタンスれる)とAPIのURLが正しいように表示されます。ここで私が使用していたコードの概要です。

これまでに、私はビデオファイルが有効であることを知っているので、C#APIを使用してこのビデオをアップロードすることに成功しました。

--update これはapiURL値である:

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

+0

毎回発生しますか? – Bozho

+0

はい、このコードを実行しようとするたびに失敗します。 – lorddaveyjohno

+0

「apiUrl」の作成方法を確認できますか? –

答えて

0

はvideoFileが実際に正しいローカルファイルを指すことを確認してください。 File(String)コンストラクタは、実際に存在するかどうかを確認しません。 MediaFileSourceコンストラクタとVideoEntry.setMediaSource()メソッドは、ファイルが有効であることを決して確認しません。挿入メソッドが送信しようとしているメッセージの本文を見つけることができないように、エラーメッセージ "要求本文をサーバーに書き込んでいます"が鳴ります。

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

ファイルが存在するかどうかをテストします。

0

ファイアウォール環境下で、jvmシステムのプロパティでプロキシ設定を行っている場合。あなたはYouTubeServiceのインスタンスであると言うよう以来

service.setChunkedMediaUpload(MediaService.NO_CHUNKED_MEDIA_REQUEST); 

またはあなたのケースで

settings.setChunkedMediaUpload(MediaService.NO_CHUNKED_MEDIA_REQUEST); 

:としてあなたユーチューブサービスを設定してみてください。

これが役に立ちます。

+0

これを使用して私のコードで例外がスローされます – Vaibs

関連する問題