Java 如何使用REST将数组作为POST参数/有效负载发送到Android中的webservice
我在我的Web服务中使用REST。这是我使用Java 如何使用REST将数组作为POST参数/有效负载发送到Android中的webservice,java,android,web-services,rest,Java,Android,Web Services,Rest,我在我的Web服务中使用REST。这是我使用advancerestclient和formcontenttype(这是原始类型)测试Web服务时发送的示例有效负载/参数: 其中child\u id%5B%5D的原始意思是child\u id[],因此我发送了child\u id的数组(在上面的表单中最左和最右)。这里一切都很好 当我试图在Android应用程序中实现这一点时,出现了问题,我使用HashMap发布了这些有效负载/参数HashMapcant在同一个键下存储两个值,因此我无法执行以下操作
advancerestclient
和formcontenttype
(这是原始类型)测试Web服务时发送的示例有效负载/参数:
其中child\u id%5B%5D
的原始意思是child\u id[]
,因此我发送了child\u id
的数组(在上面的表单中最左和最右)。这里一切都很好
当我试图在Android应用程序中实现这一点时,出现了问题,我使用HashMap
发布了这些有效负载/参数HashMap
cant在同一个键下存储两个值,因此我无法执行以下操作:
map.put("child_id[]", 1);
map.put("child_id[]", 2);
最新的put将覆盖先前的put,因此Android应用程序将只发送2
作为child\u id
的值
我该怎么办?感谢您的帮助您可以按如下方式向数组添加索引
map.put("child_id[0]", 1);
map.put("child_id[1]", 2);
您可以按如下方式向数组添加索引
map.put("child_id[0]", 1);
map.put("child_id[1]", 2);
您可以按如下方式向数组添加索引
map.put("child_id[0]", 1);
map.put("child_id[1]", 2);
您可以按如下方式向数组添加索引
map.put("child_id[0]", 1);
map.put("child_id[1]", 2);
您有一些解决此问题的选项。最简单的方法是创建一个类作为参数的容器,并将其存储在ArrayList
public class Parameter {
private String key;
private String value;
// Getters, setters, other stuff.
}
然后将其存储在ArrayList
public class Parameter {
private String key;
private String value;
// Getters, setters, other stuff.
}
您还可以创建一个类作为各种参数生成器。您可以这样做:
public class Parameters {
private ArrayList<String> keys = new ArrayList<>();
private ArrayList<String> values = new ArrayList<>();
public void add(String key, String value) { ... }
public ArrayList<String> getKeys() { ... }
public ArrayList<String> getValues() { ... }
}
公共类参数{
私有ArrayList键=新ArrayList();
私有ArrayList值=新ArrayList();
公共void add(字符串键,字符串值){…}
公共ArrayList getKeys(){…}
公共ArrayList getValues(){…}
}
第二个选项需要更多的代码,但增加了一些额外的灵活性,应该有助于更干净的API
或者,正如您在自己的评论中所提到的,您可以选择使用地图
。它也可以很好地替代上面示例中的ArrayList
s。您有几个选项可以解决这个问题。最简单的方法是创建一个类作为参数的容器,并将其存储在ArrayList
public class Parameter {
private String key;
private String value;
// Getters, setters, other stuff.
}
然后将其存储在ArrayList
public class Parameter {
private String key;
private String value;
// Getters, setters, other stuff.
}
您还可以创建一个类作为各种参数生成器。您可以这样做:
public class Parameters {
private ArrayList<String> keys = new ArrayList<>();
private ArrayList<String> values = new ArrayList<>();
public void add(String key, String value) { ... }
public ArrayList<String> getKeys() { ... }
public ArrayList<String> getValues() { ... }
}
公共类参数{
私有ArrayList键=新ArrayList();
私有ArrayList值=新ArrayList();
公共void add(字符串键,字符串值){…}
公共ArrayList getKeys(){…}
公共ArrayList getValues(){…}
}
第二个选项需要更多的代码,但增加了一些额外的灵活性,应该有助于更干净的API
或者,正如您在自己的评论中所提到的,您可以选择使用地图
。它也可以很好地替代上面示例中的ArrayList
s。您有几个选项可以解决这个问题。最简单的方法是创建一个类作为参数的容器,并将其存储在ArrayList
public class Parameter {
private String key;
private String value;
// Getters, setters, other stuff.
}
然后将其存储在ArrayList
public class Parameter {
private String key;
private String value;
// Getters, setters, other stuff.
}
您还可以创建一个类作为各种参数生成器。您可以这样做:
public class Parameters {
private ArrayList<String> keys = new ArrayList<>();
private ArrayList<String> values = new ArrayList<>();
public void add(String key, String value) { ... }
public ArrayList<String> getKeys() { ... }
public ArrayList<String> getValues() { ... }
}
公共类参数{
私有ArrayList键=新ArrayList();
私有ArrayList值=新ArrayList();
公共void add(字符串键,字符串值){…}
公共ArrayList getKeys(){…}
公共ArrayList getValues(){…}
}
第二个选项需要更多的代码,但增加了一些额外的灵活性,应该有助于更干净的API
或者,正如您在自己的评论中所提到的,您可以选择使用地图
。它也可以很好地替代上面示例中的ArrayList
s。您有几个选项可以解决这个问题。最简单的方法是创建一个类作为参数的容器,并将其存储在ArrayList
public class Parameter {
private String key;
private String value;
// Getters, setters, other stuff.
}
然后将其存储在ArrayList
public class Parameter {
private String key;
private String value;
// Getters, setters, other stuff.
}
您还可以创建一个类作为各种参数生成器。您可以这样做:
public class Parameters {
private ArrayList<String> keys = new ArrayList<>();
private ArrayList<String> values = new ArrayList<>();
public void add(String key, String value) { ... }
public ArrayList<String> getKeys() { ... }
public ArrayList<String> getValues() { ... }
}
公共类参数{
私有ArrayList键=新ArrayList();
私有ArrayList值=新ArrayList();
公共void add(字符串键,字符串值){…}
公共ArrayList getKeys(){…}
公共ArrayList getValues(){…}
}
第二个选项需要更多的代码,但增加了一些额外的灵活性,应该有助于更干净的API
或者,正如您在自己的评论中所提到的,您可以选择使用地图
。它也可以很好地替代上面示例中的ArrayList
s。您是否考虑过使用集合
?@Justin否。我会看看它。谢谢lot@Justin你说的收藏是什么意思?是Arraylist吗?是否尝试向数组添加索引?i、 e child_id[0]和child_id[1]等等。@BlazeTama是的,对不起。从技术上讲,HashMap
也是一个集合
。ArrayList
可能就是您想要的。您是否考虑过使用集合
?@Justin否。我会看一看。谢谢lot@Justin你说的收藏是什么意思?是Arraylist吗?是否尝试向数组添加索引?i、 e child_id[0]和child_id[1]等等。@BlazeTama是的,对不起。从技术上讲,HashMap
也是一个集合
。ArrayList
可能就是您想要的。您是否考虑过使用集合
?@Justin否。我会看一看。谢谢lot@Justin你说的收藏是什么意思?是Arraylist吗?是否尝试向数组添加索引?i、 e child_id[0]和child_id[1]等等。@BlazeTama是的,对不起。从技术上讲,HashMap
也是一个集合
。A.