2012-11-15 34 views
2

我试图将视频上传到YouTube: 我对相同的代码是:如何解决在java中的连接重置异常?

private static void uploadVideo(YouTubeService service) throws IOException { 
    System.out.println("First, type in the path to the movie file:"); 


    File videoFile = new File(readLine()); 

    if (!videoFile.exists()) { 
     System.out.println("Sorry, that video doesn't exist."); 
     return; 
    } 

    System.out.println(
     "What is the MIME type of this file? (ex. 'video/quicktime' for .mov)"); 

    String mimeType = readLine(); 

    System.out.println("What should I call this video?"); 
    String videoTitle = readLine(); 

    VideoEntry newEntry = new VideoEntry(); 

    YouTubeMediaGroup mg = newEntry.getOrCreateMediaGroup(); 

    mg.addCategory(new MediaCategory(YouTubeNamespace.CATEGORY_SCHEME, "Entertainment")); 
    mg.setTitle(new MediaTitle()); 
    mg.getTitle().setPlainTextContent(videoTitle); 
    mg.setKeywords(new MediaKeywords()); 
    mg.getKeywords().addKeyword("gdata-test"); 
    mg.setDescription(new MediaDescription()); 
    mg.getDescription().setPlainTextContent(videoTitle); 
    mg.setPrivate(false); 
    mg.addCategory(new MediaCategory(YouTubeNamespace.DEVELOPER_TAG_SCHEME, "mydevtag")); 
    mg.addCategory(new MediaCategory(YouTubeNamespace.DEVELOPER_TAG_SCHEME, "anotherdevtag")); 
    newEntry.setGeoCoordinates(new GeoRssWhere(37.0,-122.0)); 
    MediaFileSource ms = new MediaFileSource(videoFile, mimeType); 

    newEntry.setMediaSource(ms); 


    try { 


     service.insert(new URL(VIDEO_UPLOAD_FEED), newEntry); 

    } catch (ServiceException se) { 
     System.out.println("Sorry, your upload was invalid:"); 
     System.out.println(se.getResponseBody()); 
     return; 
    } 

    System.out.println("Video uploaded successfully!"); 
    } 

     switch(uploader.getUploadState()) { 
      case COMPLETE: 
      output.println("Uploaded successfully"); 
      break; 
      case CLIENT_ERROR: 
      output.println("Upload Failed"); 
      break; 
      default: 
      output.println("Unexpected upload status"); 
      break; 
     } 

    } 

当我运行这个它显示了异常:

java.net.SocketException: Connection reset 
at java.net.SocketInputStream.read(SocketInputStream.java:189) 
    at java.net.SocketInputStream.read(SocketInputStream.java:121) 
    at java.io.BufferedInputStream.fill(BufferedInputStream.java:235) 
    at java.io.BufferedInputStream.read1(BufferedInputStream.java:275) 
    at java.io.BufferedInputStream.read(BufferedInputStream.java:334) 
    at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:641) 
    at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:589) 
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1319) 
    at java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:468) 
    at com.google.gdata.client.http.HttpGDataRequest.checkResponse(HttpGDataRequest.java:490) 
    at com.google.gdata.client.http.HttpGDataRequest.execute(HttpGDataRequest.java:470) 
    at com.google.gdata.client.http.GoogleGDataRequest.execute(GoogleGDataRequest.java:534) 
    at com.google.gdata.client.media.MediaService.insert(MediaService.java:353) 
    at ytupload.YouTubeWriteClient.uploadVideo(YouTubeWriteClient.java:514) 
    at ytupload.YouTubeWriteClient.main(YouTubeWriteClient.java:837) 

我从主调用函数。上传(服务); 其中service = new YouTubeService(clientId,developerKey); 我该如何解决这个错误?我浪费了一天的时间......但没有想到。请建议。

编辑: VIDEO_UPLOAD_FEED =“http://gdata.youtube.com/feeds/api/users/abc123/uploads”

如果视频文件的路径我想给一些HTTP URL是什么? 请建议。 Thanx提前

回答

0

您是否成功设置了服务上的用户凭据?它可能用于创建到服务器的连接。在this

+0

亚我已经设置service.setcredentials(用户,密码)

service.setUserCredentials(User, Password); 

采取alook; – Vaibs

+0

我怀疑用户会有一些[email protected]和密码wis我们登录到youtube的权利? – Vaibs

+0

它必须是一个有效的googke帐户。 – CloudyMarble

相关问题