有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java在Android中使用嵌套关联数组发送POST数据

我正在尝试将post数据发送到我的服务器。。。下面是一些测试数据的输入外观示例

array(
    "tpid" => "3147",
    "contact_title" => "1",
    "contact_first_name" => "Dadan",
    "contact_last_name" => "Stromerb",
    "contact_middle_name" =>"",
    "contact_email" => "dadan@gositus.com",
    "contact_dob" => "22-11-1992",
    "contact_phone" => "081806037274",
    "contact_address" => "jajat",
    "contact_postcode" => "14120",
    "contact_country" => "114",
    "passenger_title" => array(
            "1" => "1"
        ),
    "passenger_first_name" => array(
            "1" => "Dadan"
        ),
    "passenger_last_name" => array(
            "1" => "Stromerb"
        ),
    "passenger_middle_name" => array(
            "1" =>""
        ),
    "passenger_dob" => array(
            "1" => "22-11-1992"
        ),
    "passenger_meal" => array(
            "1" => "1"
        ),
    "passenger_room_type" => array(
            "1" => "19348"
        ),
    "passenger_visa_id" => array(
            "1" => array(
                    "275" => "1"
                )
        ),
    "passenger_passport_select" => array(
            "1" => "1"
        ),
    "passenger_passport_number" => array(
            "1" => "234324234"
        ),
    "passenger_poi" => array(
            "1" => "114"
        ),
    "passenger_passport_expirity" => array(
            "1" => "15-12-2021"
        ),
    "booking_notes" => "test",
    "agree_termofservice" => "on"
);

发送post数据的我的java代码(使用volley库):

String url= BuildConfig.URL_BASE+"/?method=booking&key="+BuildConfig.KEY;
    CustomRequest request = new CustomRequest(Request.Method.GET, url, null, new Response.Listener<JSONObject>() {
        @Override
        public void onResponse(JSONObject response) {
            pd.hide();
            pd.dismiss();
            try {
                Toast.makeText(getActivity(), response.toString(), Toast.LENGTH_LONG).show();
                if (response.getBoolean("data")) {
                    final FragmentTransaction ft = getFragmentManager().beginTransaction();
                    ft.replace(R.id.container_tour, new TourReservedFragment(), "fragment_book");
                    ft.commit();
                }
                else {
                    Toast.makeText(getActivity(), "Pastikan data yang anda masukkan benar", Toast.LENGTH_LONG).show();
                }
            }
            catch (JSONException je) {

            }

        }
    }, new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {
            pd.hide();
            pd.dismiss();
            Toast.makeText(getActivity(), "Something wrong, Please try again.", Toast.LENGTH_SHORT).show();
        }
    }) {
        @Override
        protected Map<String, String> getParams() throws AuthFailureError {
            Map<String, String> data = new HashMap<String, String>();
            data.put("tpid", tourId);
            data.put("contact_title", (formGender.getSelectedItemPosition()+1)+"");
            data.put("contact_first_name",formFirstName.getText().toString());
            data.put("contact_last_name", formLastName.getText().toString());
            data.put("contact_middle_name","");
            data.put("contact_email", formEmail.getText().toString());
            data.put("contact_dob", formBirthdate.getText().toString());
            data.put("contact_phone", formTelpon.getText().toString());
            data.put("contact_address", formAddress.getText().toString());
            data.put("contact_postcode", "");
            data.put("contact_country", cityId[formCountry.getSelectedItemPosition()]);
            for (int i=0; i<total; i++) {
                data.put("passenger_title["+(i+1)+"]", (gender[i].getSelectedItemPosition()+1)+"");
                data.put("passenger_first_name["+(i+1)+"]", firstName[i].getText().toString());
                data.put("passenger_last_name[" + (i + 1) + "]", lastName[i].getText().toString());
                data.put("passenger_middle_name["+(i+1)+"]", "");
                data.put("passenger_dob["+(i+1)+"]", birthDate[i].getText().toString());
                data.put("passenger_meal["+(i+1)+"]", meal[i].getSelectedItemPosition()+"");
                data.put("passenger_room_type["+(i+1)+"]", roomId);
                if (passportBaru[i].isChecked()) data.put("passenger_visa_id["+(i+1)+"][32]", "2");
                else data.put("passenger_visa_id["+(i+1)+"][32]", "2");
                if (passportBaru[i].isChecked()) {
                    data.put("passenger_passport_select", (passport[i].getSelectedItemPosition()+2)+"");
                    data.put("passenger_passport_number", "");
                    data.put("passenger_poi", "");
                    data.put("passenger_passport_expirity", "");
                }
                else {
                    data.put("passenger_passport_select", "1");
                    data.put("passenger_passport_number", passportNumber[i].getText().toString());
                    data.put("passenger_poi", cityId[country[i].getSelectedItemPosition()]);
                    data.put("passenger_passport_expirity", expirityPassport[i].getText().toString());
                }
            }
            data.put("booking_notes", "test");
            data.put("agree_termofservice", "on");
            data.put("Content-Type", "application/json; charset=utf-8");
            return data;
        }
    };
    Volley.newRequestQueue(getActivity()).add(request);

但它不起作用(API响应数据:“false”,这意味着我的数据格式不被接受),有什么建议或提示吗?谢谢你的帮助


共 (0) 个答案