java - 使用 Volley 发送数据

标签 java android android-volley

我正在尝试使用 volley 发送数据。
我创建了一个应用程序,它首先检查所有数据,然后使用 Volley 方法将数据发送到服务器,但是一旦我单击按钮上传 Activity ,我的应用程序就会崩溃,如果我正确发送数据,任何人都可以帮助我是否格式化。

这是我想以表单发送到我的服务器的代码:

{
  "member_Details":[
    {
            "memberID": "1",
            "memberName": "Paddy",
          "mobile": "1",
            "telephone": "07",
            "email": "03",

        },
        {
           "memberID": "1",
            "memberName": "Paddy",
                        "mobile": "1",
            "telephone": "07",
            "email": "03",

        }
    ],
    "FarmerRegID":"130"
}

我尝试过的代码:

private void uploading_data() {

    String URL = "my url";
    StringRequest jsonObjRequest = new StringRequest(Request.Method.POST, URL, new Response.Listener<String>() {
        @Override
        public void onResponse(String response) {
            Log.i("response_login", response);
            try {
                JSONObject json = new JSONObject(response);
                int success = json.getInt("success");
                String msg = json.getString("message");
                if (success == 1) {

                    finish();
                } else {
                    Toast.makeText(Register2Activity.this, msg, Toast.LENGTH_SHORT).show();
                }
            } catch (Exception ex) {
                Log.i("Expection", ex.toString());
            }

        }
    },
            new Response.ErrorListener() {
                @Override
                public void onErrorResponse(VolleyError error) {
                    VolleyLog.d("volley", "Error: " + error.getMessage());
                    showServerConnectionError();
                }
            }) {

        @Override
        public String getBodyContentType() {
            return "application/x-www-form-urlencoded; charset=UTF-8";
        }

        @Override
        protected Map<String, String> getParams() throws AuthFailureError {
            Map<String, String> params = new HashMap<String, String>();


            params.put("memberID", member_id);
            params.put("memberName", name);
            params.put("mobile", mobile);
            params.put("telephone", telephone);
            params.put("email", email);

            return params;
        }

    };
    RequestQueue queue = SingletonRequestQueue.getInstance(getApplicationContext()).getRequestQueue();
    queue.add(jsonObjRequest);
}

private void showServerConnectionError() {
    AlertDialog.Builder builder = new AlertDialog.Builder(Register2Activity.this);
    builder.setMessage("Can't establish a connection to server,Please try again!")
            .setTitle("Internet Or Server connection Error !");
    builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int id) {
            dialog.cancel();
        }
    });
    // Create the AlertDialog
    AlertDialog dialog = builder.create();
    dialog.show();
}

最佳答案

你好@sunny希望你一切顺利, 我想你的问题之前已经在 stackoverflow 中得到了解答。请参阅link供您引用。

为了将来的引用,我建议您查看 retrofit非常酷的库,可以处理您的所有网络请求,并与推荐的架构组件和 Jetpack(即 RxJava、LiveData、ViewModel)配合良好。您一定会喜欢它。

祝你编码愉快!!!

关于java - 使用 Volley 发送数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61928181/

相关文章:

java - OverlayLayout 不遵循焦点更改时的叠加顺序

java - 如何在 Java 中比较字符串?

java - 将字符串转换为十六进制值的字节数组

java - 如何捕获 Volley 中的意外响应错误

java - 使用 http volley 发出 get 请求时响应为空

java - 可以使用命名变量在 groovy 的闭包中打印命名组吗?

android - 在ANDROID中记录去电和呼入电话

c# - 防止在 xamarin 和 monodroid 中旋转后重新加载 Activity

Android OrderedBroadcast 在发布版本中不起作用

android - 在 Adapter 初始化之前调用的方法,在 Android 中适配器初始化之后执行