java - 使用 Android Volley 发送图像或文本或两者

标签 java android android-volley

我可以使用 Android Volley 库发送图像和文本。但是如何使用 Volley 库使图像可选发送呢?

当我尝试只发送文本时,抛出了一个 Java 空指针异常

private void uploadImage(){
    //Showing the progress dialog
    final ProgressDialog loading = ProgressDialog.show(this,"Uploading...","Please wait...",false,false);
    StringRequest stringRequest = new StringRequest(Request.Method.POST, UPLOAD_URL, new Response.Listener<String>() {
        @Override
        public void onResponse(String s) {
            //Disimissing the progress dialog
            loading.dismiss();
            //Showing toast message of the response
            Toast.makeText(PostActivity.this, s, Toast.LENGTH_LONG).show();
        }
    },
    new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError volleyError) {
            //Dismissing the progress dialog
            loading.dismiss();

            //Showing toast
            Toast.makeText(PostActivity.this, volleyError.getMessage(), Toast.LENGTH_LONG).show();
        }
    }) {
        @Override
        protected Map<String, String> getParams() throws AuthFailureError {
            //Converting Bitmap to String
            String rimage = null;
            try {
                rimage = getStringImage(bitmap);
            } catch (UnsupportedEncodingException e) {
                e.printStackTrace();
            }

            //Getting Image Name
            String FName = FoodName.getText().toString().trim();
            String LName = user.username;

            //Creating parameters
            Map<String, String> params = new Hashtable<String, String>();

            //Adding parameters
            params.put(KEY_IMAGE, rimage);
            params.put(KEY_NAME, FName);
            params.put(KEY_LOGIN,LName);

            //returning parameters
            return params;
        }
    };

    //Creating a Request Queue
    RequestQueue requestQueue = Volley.newRequestQueue(this);

    //Adding request to the queue
    requestQueue.add(stringRequest);
}

最佳答案

You can check you image string as null or not ! If it is not null then send it.  


   @Override
            protected Map<String, String> getParams() throws AuthFailureError {
                //Converting Bitmap to String
                String rimage = null;
                try {
                    rimage = getStringImage(bitmap);
                } catch (UnsupportedEncodingException e) {
                    e.printStackTrace();
                }

                //Getting Image Name
                String FName = FoodName.getText().toString().trim();
                String LName = user.username;

                //Creating parameters
                Map<String, String> params = new Hashtable<String, String>();

                //Adding parameters
                if(rimage!=null)
                {
                params.put(KEY_IMAGE, rimage);
                }
                params.put(KEY_NAME, FName);
                params.put(KEY_LOGIN,LName);

                //returning parameters
                return params;
            }
        };

关于java - 使用 Android Volley 发送图像或文本或两者,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36590407/

相关文章:

Android 命令行工具 - 带库的项目中的 Ant 调试

android - 我应该使用 Intent 服务吗?

android - 如何在带点的Viewpager中显示全屏

android - 使用 Volley 进行响应处理

java - Spring 3.0 中的 @ContextConfiguration 给我找不到默认构造函数

java - 球形相机

java - 如何提高spring-mvc和tomcat中静态资源的流式处理

java - Java中基于相等性生成Hash码

java - 在Android中使用Volley提取数据

java - Android - 如何使用 Volley 库将多维 JSON 结果处理到微调器中