简体   繁体   English

Java中的HttpPost参数BasicNameValuePair

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM