2017-02-22 30 views
0

を使用してビデオをアップロードするとき、私はそれは、しかし、それを接続が設定されている第一回のためにビデオをアップロードした改造サーバETIMEDOUT(接続がタイムアウト)改造2

private String uploadVideoToServer(String pathToVideoFile) { 
    Log.v("test_get", "get the file"); 
    Retrofit retrofit = new Retrofit.Builder() 
      .baseUrl("http://xxx.xxx.xxx.xxx:xxxx/") 
      .addConverterFactory(GsonConverterFactory.create()) 
      .build(); 

    SmileVideoAPI service = retrofit.create(SmileVideoAPI.class); 
    MediaType MEDIA_TYPE = MediaType.parse("multipart/form-data"); 
    File videoFile = new File(pathToVideoFile); 
    //RequestBody videoBody = RequestBody.create(MEDIA_TYPE, videoFile); 
    ProgressRequestBody videoBody = new ProgressRequestBody(videoFile, this); 
    MultipartBody.Part vFile = MultipartBody.Part.createFormData("file", videoFile.getName(), videoBody); 
    RequestBody description = createPartFromString("desc"); 
    Log.v("test_get", "before uploading"); 
    Call<ResponseBody> call = service.uploadVideo(description, vFile); 
    Log.v("test_get", "after uploading"); 
    call.enqueue(new Callback<ResponseBody>() { 
     @Override 
     public void onResponse(Call<ResponseBody> call, Response<ResponseBody> response) { 
      if (response.isSuccessful()) { 
       Log.i("mok", "S"); 
       ResponseBody rb = response.body(); 
       Log.i("mok", rb.toString()); 
       mProgress.setProgress(100); 
       Intent intent = new Intent(UploadActivity.this, UploadCompleteActivity.class); 
       startActivity(intent); 
       finish(); 
      } else { 
       Log.i("mok", "F"); 
       ResponseBody rb = response.errorBody(); 
       Log.i("mok", rb.toString()); 
      } 
     } 

     @Override 
     public void onFailure(Call<ResponseBody> call, Throwable t) { 
      t.printStackTrace(); 
      Log.i("mok", t.getCause() + ""); 
      Log.i("mok", "T"); 
      Toast.makeText(getApplicationContext(), "Upload fail", Toast.LENGTH_SHORT).show(); 
      Intent intent = new Intent(UploadActivity.this, MainActivity.class); 
      startActivity(intent); 
      finish(); 
     } 
    }); 
    return msg; 
} 

に自分の動画をアップロードするには、このコードを使用しています以下のエラーを時折以下に投げます。

libcore.io.ErrnoException:をisConnectedに失敗しました:この出来事があり、そしてどのように私はそれを修正することができる理由ETIMEDOUT(接続がタイムアウト)

は、誰も私を説明できますか?今、私は接続が閉じられていない可能性があるため、接続を閉じる方法を調べています。接続が解除されていないので、これが原因となっている

答えて

0

、 私は

response.body().close(); 
を置くことによって、これを解決し