使用Volley将图像上传到IMGUR返回TimeoutError

问题描述:

我正尝试使用VolleyStringRequest将图像上传到我的Imgur帐户。我不知道如何处理响应,所以会发生什么,因为它没有收到Imgur的回应,所以会重新上传。该图像最终被上传了几次,直到TimeoutError被抛出。我怎么能确保这不会发生,因为我无法检测到从Imgur服务器返回的响应?
这里是我使用它变换为Base64后到图像上载方法:

使用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); 

} 

更改DefaultRetryPolicy上请求具有较大的期满时间帧中,由于上载的图像可以采取位。另外,对于双上传,确保有设置为0

new DefaultRetryPolicy(LONGER_TIMEOUT, 0, 0);

+0

我这样做已经,但它仍然上传图像不止一次 – Manny265

+0

你的MAX_RETRIES设置为0,更MAX_RETRIES?请参阅编辑。 – Submersed

+0

根据需要将重试设置为零似乎只上传一次图像,但TimeOut和SSL错误仍显示出来 – Manny265