使用Volley将图像上传到IMGUR返回TimeoutError
问题描述:
我正尝试使用Volley
StringRequest
将图像上传到我的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);
我这样做已经,但它仍然上传图像不止一次 – Manny265
你的MAX_RETRIES设置为0,更MAX_RETRIES?请参阅编辑。 – Submersed
根据需要将重试设置为零似乎只上传一次图像,但TimeOut和SSL错误仍显示出来 – Manny265