IOException при загрузке видео на YouTube через Java API - PullRequest
0 голосов
/ 20 декабря 2010

Я пытался загрузить видео на YouTube через JavaAPI с помощью прямой загрузки. У меня возникла проблема при вызове метода insert (), я получаю IOException с сообщением об ошибке

«Ошибка записи тела запроса на сервер»

Я подтвердил, что объект File, который я создаю, является правильным, а также все детали в моем объекте 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), и URL-адрес API отображается правильно.

До этого мне удалось загрузить это видео с помощью API C #, поэтому я знаю, что видеофайл действителен.

- Обновление Это значение apiURL:

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

Ответы [ 2 ]

0 голосов
/ 20 мая 2011

Если вы находитесь под брандмауэром env и настроили параметры прокси в свойствах системы jvm Попробуйте настроить свой сервис YouTube как:

service.setChunkedMediaUpload(MediaService.NO_CHUNKED_MEDIA_REQUEST);

или в вашем случае

settings.setChunkedMediaUpload(MediaService.NO_CHUNKED_MEDIA_REQUEST);

поскольку, как вы говорите, это ваш экземпляр YouTubeService.

надеюсь, это поможет.

0 голосов
/ 20 декабря 2010

Убедитесь, что videoFile действительно указывает на правильный локальный файл. Конструктор File (String) не будет проверять, действительно ли он существует. Конструктор MediaFileSource и метод VideoEntry.setMediaSource () также никогда не проверяют допустимость файла. Сообщение об ошибке «Ошибка записи тела запроса на сервер» звучит так, как будто метод вставки не может найти тело сообщения, которое пытается отправить.

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

чтобы проверить, существует ли файл.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...