在请求正文中发送数组不起作用:使用改造 2.1.0

编程入门 行业动态 更新时间:2024-10-28 08:17:05
本文介绍了在请求正文中发送数组不起作用:使用改造 2.1.0的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

在将CustomDishItems"作为数组发送时,它给出了结果:服务器在处理请求时遇到错误

while sending "CustomDishItems" as array it is giving result : The server encountered an error processing the request

它适用于:CustomDishItems":"

it works for : "CustomDishItems": ""

以下是我使用 PHP 网络服务在服务器上POST"所需的数据

Following is my required data to "POST" on server using PHP web-service

服务网址:

saavorapi.parkeee/API/KitchenService.svc/DishInsertUpdate

请求正文:

{ "AvailableFrom": "", "AvailableQty": "1", "AvailableTill": "Enter custom Date", "AvailableTo": "Jun 15, 2017", "Calories": "100", "Category": "nonVeg", "CreateDate": "May 31, 2017 12:10 PM", "CuisineId": "113", "CustomDishItems": [{ "Cost": "100", "ItemName": "salted" }, { "Cost": "120", "ItemName": "sweet" }], "Customizable": "true", "Description": "test", "DishId": "0", "DishName": "test", "Ingredeients": "test", "MenuTitle": "menu1", "PreparingTime": "58", "Price": "100", "ProfileId": "227", "SessionToken": "97801380243422832" }

Java 代码是:

private void addDish() {

private void addDish() {

CustomDishField customDishField = new CustomDishField(itemNameEt.getText().toString(), itemCostEt.getText().toString()); ArrayList<CustomDishField> customDishArrayList = new ArrayList<>(); customDishArrayList.add(customDishField); final int childcount = container.getChildCount(); for (int i = 0; i < childcount; i++) { View v = container.getChildAt(i); EditText itemCostEt = (EditText) v .findViewById(R.id.itemCostEt); EditText itemNameEt = (EditText) v .findViewById(R.id.itemNameEt); customDishArrayList.add(new CustomDishField(itemNameEt.getText().toString(), itemCostEt.getText().toString())); } AddDish addDish = new AddDish(availableFrom, availableQuantity, availableTill, availableTo, calories, Category , createDate, cuisineId, customDishArrayList, Customizable, Description, DishId, dishNameString, Ingredeients, MenuTitle, PreparingTime, Price, ProfileId, SessionToken); Call call = apiInterface.addDish(addDish); call.enqueue(new Callback() { @Override public void onResponse(Call call, retrofit2.Response response) { Log.d("TAG", response.code() + ""); Response response1 = (Response) response.body(); if (((Response) response.body()).getReturnCode().equals("1")) { Toast.makeText(AddDishActivity.this, "" + ((Response) response.body()).getReturnMessage(), Toast.LENGTH_SHORT).show(); progressBar.setVisibility(View.GONE); finish(); Intent intent = new Intent(AddDishActivity.this, ManageKitchen.class); startActivity(intent); } else { Toast.makeText(AddDishActivity.this, "" + ((Response) response.body()).getReturnCode(), Toast.LENGTH_SHORT).show(); progressBar.setVisibility(View.GONE); } } @Override public void onFailure(Call call, Throwable t) { Log.d("TAG", "call cancel"); call.cancel(); progressBar.setVisibility(View.GONE); } }); }

AddDish.Java

AddDish.Java

公共类 AddDish {

public class AddDish {

@SerializedName("AvailableFrom") @Expose private String availableFrom; @SerializedName("AvailableQty") @Expose private String availableQty; @SerializedName("AvailableTill") @Expose private String availableTill; @SerializedName("AvailableTo") @Expose private String availableTo; @SerializedName("Calories") @Expose private String calories; @SerializedName("Category") @Expose private String category; @SerializedName("CreateDate") @Expose private String createDate; @SerializedName("CuisineId") @Expose private String cuisineId; @SerializedName("CustomDishItems") @Expose private ArrayList<CustomDishField> customDishItems; @SerializedName("Customizable") @Expose private String customizable; @SerializedName("Description") @Expose private String description; @SerializedName("DishId") @Expose private String dishId; @SerializedName("DishName") @Expose private String dishName; @SerializedName("Ingredeients") @Expose private String ingredeients; @SerializedName("MenuTitle") @Expose private String menuTitle; @SerializedName("PreparingTime") @Expose private String preparingTime; @SerializedName("Price") @Expose private String price; @SerializedName("ProfileId") @Expose private String profileId; @SerializedName("SessionToken") @Expose private String sessionToken; public AddDish(String availableFrom, String availableQty, String availableTill, String availableTo, String calories, String category, String createDate, String cuisineId, ArrayList<CustomDishField> customDishItems, String customizable, String description, String dishId, String dishName, String ingredeients, String menuTitle, String preparingTime, String price, String profileId, String sessionToken) { this.availableFrom = availableFrom; this.availableQty = availableQty; this.availableTill = availableTill; this.availableTo = availableTo; this.calories = calories; this.category = category; this.createDate = createDate; this.cuisineId = cuisineId; this.customDishItems = customDishItems; this.customizable = customizable; this.description = description; this.dishId = dishId; this.dishName = dishName; this.ingredeients = ingredeients; this.menuTitle = menuTitle; this.preparingTime = preparingTime; this.price = price; this.profileId = profileId; this.sessionToken = sessionToken; } public String getAvailableFrom() { return availableFrom; } public void setAvailableFrom(String availableFrom) { this.availableFrom = availableFrom; } public String getAvailableQty() { return availableQty; } public void setAvailableQty(String availableQty) { this.availableQty = availableQty; } public String getAvailableTill() { return availableTill; } public void setAvailableTill(String availableTill) { this.availableTill = availableTill; } public String getAvailableTo() { return availableTo; } public void setAvailableTo(String availableTo) { this.availableTo = availableTo; } public String getCalories() { return calories; } public void setCalories(String calories) { this.calories = calories; } public String getCategory() { return category; } public void setCategory(String category) { this.category = category; } public String getCreateDate() { return createDate; } public void setCreateDate(String createDate) { this.createDate = createDate; } public String getCuisineId() { return cuisineId; } public void setCuisineId(String cuisineId) { this.cuisineId = cuisineId; } public ArrayList<CustomDishField> getCustomDishItems() { return customDishItems; } public void setCustomDishItems(ArrayList<CustomDishField> customDishItems) { this.customDishItems = customDishItems; } public String getCustomizable() { return customizable; } public void setCustomizable(String customizable) { this.customizable = customizable; } public String getDescription() { return description; } public void setDescription(String description) { this.description = description; } public String getDishId() { return dishId; } public void setDishId(String dishId) { this.dishId = dishId; } public String getDishName() { return dishName; } public void setDishName(String dishName) { this.dishName = dishName; } public String getIngredeients() { return ingredeients; } public void setIngredeients(String ingredeients) { this.ingredeients = ingredeients; } public String getMenuTitle() { return menuTitle; } public void setMenuTitle(String menuTitle) { this.menuTitle = menuTitle; } public String getPreparingTime() { return preparingTime; } public void setPreparingTime(String preparingTime) { this.preparingTime = preparingTime; } public String getPrice() { return price; } public void setPrice(String price) { this.price = price; } public String getProfileId() { return profileId; } public void setProfileId(String profileId) { this.profileId = profileId; } public String getSessionToken() { return sessionToken; } public void setSessionToken(String sessionToken) { this.sessionToken = sessionToken; }

}

CustomDishField.Java 类是:

CustomDishField.Java Class is :

公共类 CustomDishField {

public class CustomDishField {

@SerializedName("ItemName") @Expose private String ItemName; @SerializedName("Cost") @Expose private String Cost; public CustomDishField(String itemName, String cost) { ItemName = itemName; Cost = cost; } public String getItemName() { return ItemName; } public void setItemName(String itemName) { ItemName = itemName; } public String getCost() { return Cost; } public void setCost(String cost) { Cost = cost; }

}

推荐答案

使用以下代码将 Arraylist 转换为字符串并且工作正常:

Converted Arraylist to string using following code and its working fine:

Gson gson = new Gson();String customDishListString= gson.toJson(customDishArrayList);

Gson gson = new Gson(); String customDishListString= gson.toJson(customDishArrayList);

更多推荐

在请求正文中发送数组不起作用:使用改造 2.1.0

本文发布于:2023-10-29 07:36:15,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1539099.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:数组   文中   不起作用

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!