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

Java 使用嵌套关联数组在Android中发送POST数据,java,android,arrays,post,android-volley,Java,Android,Arrays,Post,Android Volley,我正在尝试将post数据发送到我的服务器。。。下面是一些测试数据的输入外观示例 array( "tpid" => "3147", "contact_title" => "1", "contact_first_name" => "Dadan", "contact_last_name" => "Stromerb", "contact_middle_name" =>"", "contact_email" => "dad

我正在尝试将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\u BASE+“/?method=booking&key=“+BuildConfig.key;
CustomRequest=new CustomRequest(request.Method.GET,url,null,new Response.Listener()){
@凌驾
公共void onResponse(JSONObject响应){
pd.hide();
pd.解散();
试一试{
Toast.makeText(getActivity(),response.toString(),Toast.LENGTH_LONG).show();
if(response.getBoolean(“数据”)){
final FragmentTransaction ft=getFragmentManager().beginTransaction();
ft.replace(R.id.container_TOURE,新TourReservedFragment(),“fragment_book”);
ft.commit();
}
否则{
Toast.makeText(getActivity(),“Pastikan数据”,Toast.LENGTH_LONG.show();
}
}
捕获(JSONException je){
}
}
},new Response.ErrorListener(){
@凌驾
公共无效onErrorResponse(截击错误){
pd.hide();
pd.解散();
Toast.makeText(getActivity(),“出现问题,请重试。”,Toast.LENGTH\u SHORT.show();
}
}) {
@凌驾
受保护的映射getParams()引发AuthFailureError{
映射数据=新的HashMap();
数据。put(“tpid”,巡回);
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(“联系人姓名”和“);
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_country”,cityId[formCountry.getSelectedItemPosition());

对于(int i=0;iDefine'not working'@JPMoresmau)API响应数据:“false”,这意味着我的数据格式不被接受
java代码发送post数据
Request.Method.GET
@greenapps抱歉,已编辑…有效负载不应这样构造。请尝试改用POJO类。
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);