Java 使用嵌套关联数组在Android中发送POST数据
我正在尝试将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
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);