【问题标题】:HttpPost parameters BasicNameValuePair in JavaJava中的HttpPost参数BasicNameValuePair
【发布时间】:2017-06-29 10:56:28
【问题描述】:

我必须将参数列表传递给 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 上实现?

【问题讨论】:

    标签: java http http-post basicnamevaluepair


    【解决方案1】:

    来自服务器的实际 JSON 是

    "par1": "val1",

    "par1": "val1",

    "par3": ["val1","val2","val3"]

    我认为问题是你得到了

    “par1”:“val1”

    从服务器端两次。 将第二个更改为

    par2:'val2'

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-28
      相关资源
      最近更新 更多