【问题标题】:HTTP POST with json - wrong parameters带有 json 的 HTTP POST - 错误的参数
【发布时间】:2018-10-29 11:31:18
【问题描述】:

我正在尝试调用一个 REST 服务,该服务接受带有两个参数 param1param2 的 json,如下所示:

[{
"param1": "xxx",
"param2": "xxx"
}]

按照我的代码调用 MY_SERVICE_URL:

HttpClient client = new DefaultHttpClient();
HttpPost request = new HttpPost(MY_SERVICE_URL);        
String json = new String("[{\"param1\": \"" + "param1Value" + "\",\"param2\": \"" + "param2Value" + "\"}]");
request.setEntity(new StringEntity(json));
request.setHeader("Content-Type", "application/json");
request.setHeader("Accept", "application/json");

try {
    HttpResponse response = client.execute(request);
    int responseCode = response.getStatusLine().getStatusCode();
    BufferedReader rd = new BufferedReader (new InputStreamReader(response.getEntity().getContent()));
    String output = rd.readLine();
    System.out.println("Response code: " + responseCode);
    System.out.println("Output: " + output);
} catch(Exception ex) {
    System.out.println("Error");
}

client.getConnectionManager().shutdown();

POST 失败,因为它没有将第一个参数识别为有效:而不是读取 param1,它正在考虑参数 \"param1\"

任何帮助表示赞赏 谢谢 西蒙娜

【问题讨论】:

  • 您好 Simone,请您在您的问题中添加堆栈跟踪的 sn-p 吗?这对于了解正在发生的事情以及为遇到相同问题的人检索您的问题通常很有用:)

标签: java json post http-post httpclient


【解决方案1】:

使用下面的 sn-p 创建 JSON 以通过您的 webservice/api 发布。希望能帮助到你 也添加以下引用 import org.json.simple.JSONObject;

JSONObject item = new JSONObject();
item.put("param1", "testValue1");
item.put("param2", 123);
item.put("param3", "testValue3");

String json = item.toString();

【讨论】:

  • 重新检查您的答案。这个问题被错误地标记为 c# 它似乎是针对 java 的。
  • @Nkosi 你是对的,我错误地放置了 c# 标签,但我们在谈论 java。另请考虑我也使用了一些 JSON 实用程序,但 POST 总是因上述错误而失败
  • @Aditya 对不起,代码指的是 java.lang.我更正了标签,谢谢
  • @SimoneCeccolini 请检查更新的答案。希望这能解决您的问题。
猜你喜欢
  • 2020-11-03
  • 1970-01-01
  • 2014-05-14
  • 2016-03-12
  • 1970-01-01
  • 1970-01-01
  • 2016-08-20
  • 1970-01-01
  • 2012-02-23
相关资源
最近更新 更多