gpt4 book ai didi

java - 在 JAVA 中将 JSON 对象作为 POST 发送到 REST 服务

转载 作者:太空宇宙 更新时间:2023-11-04 13:32:48 25 4
gpt4 key购买 nike

嗨,我对 Java 有点陌生,正在向 url 发出 POST 请求。不过,我正在尝试将发布请求发送到期望正文如下所示的网址:

{ "startTime":"2013/09/09 11:00",
"endTime":"2013/09/09 13:00",
"pool": "webscr,paymentserv",
"regexs":["string1","string2"],
"searchMode":"simple",
}

对我来说,这看起来像一个 JSON 对象。所以在我的代码中我尝试执行以下操作

    String url = "http://restAPIService.com/regex/request";

HttpClient client = HttpClientBuilder.create().build();
HttpPost post = new HttpPost(url);

List<BasicNameValuePair> urlParameters = new ArrayList<BasicNameValuePair>();
urlParameters.add(new BasicNameValuePair("startTime", startTime));
urlParameters.add(new BasicNameValuePair("endTime", endTime));
urlParameters.add(new BasicNameValuePair("pool", pool));
for (int i = 0; i < regexArray.length; i++) {
urlParameters.add(new BasicNameValuePair("regexs[]",regexArray[i]));
}

post.setEntity(new UrlEncodedFormEntity(urlParameters));
HttpResponse response = client.execute(post);

BufferedReader rd = new BufferedReader(
new InputStreamReader(response.getEntity().getContent()));

StringBuffer result = new StringBuffer();
String line = "";
while ((line = rd.readLine()) != null) {
result.append(line);
}
然而,当我运行这段代码时,我得到了 415 的响应。我认为这是因为这个名称值对没有创建 JSON 对象,但我不知道如何在 Java 中创建 Json 对象,并且在线文档没有帮助。据推测,基本名称值对可以工作,但并非所有对都是字符串。请注意,regexs 字段是一个字符串数组。

创建 JSON 对象作为 url 参数或请求正文发送的最佳方法是什么?

救命啊!谢谢!

注意:我也尝试过类似的操作 HTTP POST using JSON in Java但我无法让它用于特定目的。如果它有帮助,我的 regexArray 不必是一个数组(我只总是使用正则表达式,因此对象中的该字段将始终像这样的正则表达式:[“string1”]

最佳答案

您可以在java中使用一些JSON工具包,例如json-simple , gson等等

关于java - 在 JAVA 中将 JSON 对象作为 POST 发送到 REST 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32001221/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com