requestQueue volley doenst work(发送多个请求)



我想上传多张图片(使用 base64 编码(。我使用 for 发送这些图像:

for(int i =1; i<6; i++){
        bmp = ((BitmapDrawable)imgs[i].getDrawable()).getBitmap();
        String image = getEncoded64ImageStringFromBitmap(bmp);
        SendImage(image);
}

但它只发送 5 个请求中的一两个请求! 这里也没有发生错误。我有一个在onCreate方法初始化的请求队列。这是我的凌空抽射要求:

private void SendImage( final String image) {
    String URL = APPURL;
    final StringRequest stringRequest = new StringRequest(Request.Method.POST, URL,
            new Response.Listener<String>() {
                @Override
                public void onResponse(String response) {
                    try {
                        JSONObject jsonObject = new JSONObject(response);
                } catch (JSONException e) {
                    e.printStackTrace();
                }
            }
},
        new Response.ErrorListener() {
    @Override
    public void onErrorResponse(VolleyError error) {
    }
}) {
    @Override
    protected Map<String, String> getParams() throws AuthFailureError {
        Map<String, String> params = new Hashtable<String, String>();
        params.put("image", image);
        return params;
    }
};
{
    requestQueue.add(stringRequest);
    Toast.makeText(AddProduct.this,"added "+requestQueue.getSequenceNumber(),Toast.LENGTH_SHORT).show();
}}

你必须通过递归方法来做到这一点

喜欢

只是你必须打电话一次

multiFileUpload(uploadedFileCount);

然后它将处理递归模型中的所有文件。

private int totalFileCount = 6;
private int uploadedFileCount = 1;
private String URL = APPURL;
private multiFileUpload(int _uploadedFileCount)
{
final StringRequest stringRequest = new StringRequest(Request.Method.POST, URL,
            new Response.Listener<String>() {
                @Override
                public void onResponse(String response) {
                    try {
                        JSONObject jsonObject = new JSONObject(response);
                        if((uploadedFileCount<6)
                        {
                           uploadedFileCount++;
                           multiFileUpload(uploadedFileCount);
                        }
                } catch (JSONException e) {
                    e.printStackTrace();
                }
            }
        },
        new Response.ErrorListener() {
    @Override
    public void onErrorResponse(VolleyError error) {
    }
}) {
    @Override
    protected Map<String, String> getParams() throws AuthFailureError {
        Bitmap bmp = ((BitmapDrawable)imgs[_uploadedFileCount].getDrawable()).getBitmap();
        String image = getEncoded64ImageStringFromBitmap(bmp);
        Map<String, String> params = new Hashtable<String, String>();
        params.put("image", image);
        return params;
    }
};
{
    requestQueue.add(stringRequest);
    Toast.makeText(AddProduct.this,"added "+requestQueue.getSequenceNumber(),Toast.LENGTH_SHORT).show();
}
}

我的问题出在后端。图像是同时出现的,我使用 time(( 函数来命名它们,因此只需在服务器中保存一两个文件。

相关内容

  • 没有找到相关文章

最新更新