我必须将参数列表传递给Http POST调用。
服务器预期的实际JSON是:
{
"par1": "val1",
"par1": "val1",
"par3": ["val1", "val2", "val3"]
}
这是Java存根:
List<NameValuePair> parameters = new ArrayList<>();
parameters.add(new BasicNameValuePair("par1", "val1"));
parameters.add(new BasicNameValuePair("par2", "val2"));
parameters.add(new BasicNameValuePair("par3", "["val1", "val2", "val3"]"));
这是我将参数传递给HttpPost
对象的方式:
httpPost.setEntity(new UrlEncodedFormEntity(parameters));
端点需要一个4°线的数组,我不知道如何将它作为数组传递。
尝试在Stackoverflow上搜索并找到以下解决方案:
//inside for loop
parameters.add(new BasicNameValuePair(String.format("par[%d]", incremental), "value"+incremental));
或
//inside for loop
parameters.add(new BasicNameValuePair("par[]", "value"+incremental));
或
String values = "" +
"[" +
"\"val1\"," +
"\"val2\"," +
"\"val3\""
"]";
parameters.add(new BasicNameValuePair("par3", values ));
实际上,我无法调试服务器端,所以我不能说它们是否正确。从那时起,他们都没有工作过。
如何在java上创建它?
答案 0 :(得分:0)
服务器的实际JSON是
“par1”:“val1”,
“par1”:“val1”,
“par3”:[“val1”,“val2”,“val3”]
我认为问题在于你得到了
“par1”:“val1”
服务器端两次。 将第二个更改为
par2:'val2'