[英]HttpPost parameters BasicNameValuePair in Java
I have to pass a parameters list to an Http POST call. 我必须将参数列表传递给Http POST调用。
The actual JSON expected from the server is: 服务器期望的实际JSON是:
{
"par1": "val1",
"par1": "val1",
"par3": ["val1", "val2", "val3"]
}
Here's the Java stub: 这是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"]"));
this is how I pass parameters to HttpPost
object: 这是我将参数传递给
HttpPost
对象的方式:
httpPost.setEntity(new UrlEncodedFormEntity(parameters));
The endpoint expects an array as the 4° line says and I have no idea on how to pass it as array. 端点期望一个数组,如4°线所示,我不知道如何将其作为数组传递。
Tried searching on Stackoverflow and found the following solutions: 尝试搜索Stackoverflow并找到以下解决方案:
//inside for loop
parameters.add(new BasicNameValuePair(String.format("par[%d]", incremental), "value"+incremental));
or 要么
//inside for loop
parameters.add(new BasicNameValuePair("par[]", "value"+incremental));
or 要么
String values = "" +
"[" +
"\"val1\"," +
"\"val2\"," +
"\"val3\""
"]";
parameters.add(new BasicNameValuePair("par3", values ));
Actually, I cannot debug the server side so I can't say if they're correct or not. 实际上,我无法调试服务器端,因此无法确定它们是否正确。 Since now none of them had worked.
从那时起,他们都没有工作。
How can I make it on java? 如何在Java上制作它?
The actual JSON from server is 来自服务器的实际JSON是
"par1": "val1",
“ par1”:“ val1”,
"par1": "val1",
“ par1”:“ val1”,
"par3": ["val1","val2","val3"]
“ par3”:[“ val1”,“ val2”,“ val3”]
I think the problem is That you are getting 我认为问题在于
"par1": "val1"
“ par1”:“ val1”
Twice from the server side. 从服务器端两次。 Change the second to
将第二个更改为
par2 : 'val2'
par2:'val2'
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.