2016-11-27 7 views
0

VolleyStringRequestを使用してImgurアカウントに画像をアップロードしようとしています。私は応答を処理する方法がわからないので、Imgurからの応答を受け取っていないので、アップロードが再開されます。画像はTimeoutErrorがスローされるまで2〜3回アップロードされます。 Imgurサーバーから返されたレスポンスを検出できないため、これが起こらないようにする方法はありますか?より大きな有効期限の時間枠を持っているの要求に

Volleyを使用してIMGURに画像をアップロードすると、TimeoutErrorが返されます。

public void uploadImage(View view) { 
    Log.i(TAG,"start upload"); 
    StringRequest uploadRequest = new StringRequest(Request.Method.POST, AppConst.IMGUR_ADD_IMG, new Response.Listener<String>() { 
     @Override 
     public void onResponse(String response) { 
      Log.d(TAG, "finished image upload"); 
     } 
    }, new Response.ErrorListener() { 
     @Override 
     public void onErrorResponse(VolleyError error) { 
      Log.e(TAG, error.toString()); 
      Log.e(TAG,"finish/error upload"); 
     } 
    }) { 
     @Override 
     public Map<String, String> getHeaders() throws AuthFailureError { 
      Map<String, String> headers = new HashMap<>(); 
      headers.put("Authorization", "Bearer " + token); 
      return headers; 
     } 

     @Override 
     protected Map<String, String> getParams() throws AuthFailureError { 
      Map<String, String> params = new HashMap<>(); 
      params.put(AppConst.IMGUR_TAG_IMAGE, encodeImage(selectedImg)); 
      params.put(AppConst.IMGUR_TAG_TITLE, "title"); 
      params.put(AppConst.IMGUR_TAG_NAME, String.valueOf(System.currentTimeMillis())); 
      return params; 
     } 
    }; 

    AppController.getInstance().addToRequestQueue(uploadRequest); 

} 

答えて

0

変更DefaultRetryPolicy、ビットを取ることができ、画像をアップロード以来:
は、ここで私はBase64でそれを変換後の画像をアップロードするために使用しています方法です。また、二重のアップロードのため、0

new DefaultRetryPolicy(LONGER_TIMEOUT, 0, 0);

+0

に設定MAX_RETRIESを持っていることを確認してください私はすでに、それはまだ多くの – Manny265

+0

何度もあなたが0にMAX_RETRIESを設定している画像をアップロードすることをやりましたか?編集を参照してください。 – Submersed

+0

リトライを0に設定すると、必要に応じて画像を1回アップロードするように見えますが、TimeOutとSSLエラーはまだ表示されています – Manny265

関連する問題