2017-11-22 5 views
1

115KBの画像ファイルをサーバーにアップロードすると、エラーが発生しました(stackoverflowの最大の答えはファイルのダウンロードです。 ONFAILURE:java.net.ProtocolException:それは エラー情報が下にある)のものと同じであるかどうかを知りません、ストリームの予期しない終わりjava.net.ProtocolException:予期しないストリームの終了は、サーバーに画像をアップロードしたときに発生しました。

関連するコード:

public void upLoadImageFile(String uploadUrl, File file, Map<String, String> maps, final HWUploadListener listener) { 


    final CallbackHandler handler = new CallbackHandler(listener); 

    try { 
     MultipartBody.Builder builder = new MultipartBody.Builder().setType(MultipartBody.FORM); 
     if (maps == null) { 
      builder.addPart(Headers.of("Content-Disposition", "form-data; name=\"image\";filename=\"file.jpg\""), 
        RequestBody.create(MediaType.parse("image/jpeg"), file)).build(); 

     } else { 
      for (String key : maps.keySet()) { 
       builder.addFormDataPart(key, maps.get(key)); 
      } 
      builder.addPart(Headers.of("Content-Disposition", "form-data; name=\"image\";filename=" + file.getName()), RequestBody.create(MediaType.parse("image/jpeg"), file) 
      ); 
     } 


     RequestBody body = builder.build(); 

     final Request request = new Request.Builder().url(uploadUrl).post(body).build(); 

     final Call call = mOkHttpClient.newBuilder().writeTimeout(50, TimeUnit.SECONDS).build().newCall(request); 
     call.enqueue(new Callback() { 
      @Override 
      public void onFailure(Call call, IOException e) { 
       UtilUtils1.log("HuowuSdk", "onFailure :" + e.toString()); 
       handler.uploadFailure(e.toString()); 
      } 

      @Override 
      public void onResponse(Call call, Response response) throws IOException { 

       if (response.isSuccessful()) { 
        String result = response.body().string(); 
        handler.uploadSuccess(result); 

       } else { 
        handler.uploadFailure(response.message()); 
       } 
      } 
     }); 

    } catch (Exception e) { 
     UtilUtils1.log("HuowuSdk", e.toString()); 
     handler.uploadError(e.toString()); 
    } 
} 

あなたの答えに感謝!ここでは、この行の

答えて

0

あなたの書き込みのタイムアウトをアップロードすると、有効期限が切れている間それが理由かもしれないので、書き込みのタイムアウトを増やす必要があるの下に以下の行増加writeTimeout制限で非常に:

final Call call = mOkHttpClient.newBuilder().writeTimeout(50, TimeUnit.SECONDS).build().newCall(request); 
+0

は私が持っているあなたのanswer.Butいただきありがとうございますその前にタイムアウト制限を書きました。問題はまだ発生しました。 –

関連する問題