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) 个答案