gpt4 book ai didi

java - 调用 Spring 服务(导入 java.net.URL.* 包) POST 其调用但在响应时收到 java.io.FileNotFoundException

转载 作者:行者123 更新时间:2023-12-01 15:51:13 28 4
gpt4 key购买 nike

我正在尝试使用 URL 包设置对 Spring 服务的基本调用,以便我可以通过 POST 而不是 get 来完成此操作。

客户端代码(调用spring服务的代码):

        String data = URLEncoder.encode("testStringFromGWT", "UTF-8") + "=" + URLEncoder.encode(message, "UTF-8");

URL url = new URL("http://localhost:8080/spring-hibernate-mysql/test/test1");

URLConnection conn = url.openConnection();

conn.setDoOutput(true);
OutputStreamWriter wr = new OutputStreamWriter(conn.getOutputStream());
wr.write(data);
wr.flush();

// Get the response
BufferedReader rd = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String line;
while ((line = rd.readLine()) != null) {
// Process line...
}
wr.close();
rd.close();

Spring 服务:

@RequestMapping(value = "/test1", method = RequestMethod.POST)
public String loggedInUniversal_logout(
Model model,
HttpServletRequest request,
@RequestParam(value = "inputString", required = true) String inputString)
throws InterruptedException {

HttpSession session = request.getSession();

System.out.println("Request made from Client..." + inputString);

model.addAttribute("token", "It works");
return "token";
}

当我尝试这个时,我得到:

java.io.FileNotFoundException: http://localhost:8080/spring-hibernate-mysql/test/test1
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1401)

我不太确定我做错了什么,我能够确认调用是否正确传递到 Spring,因为我可以看到正在打印的行 “Request made from Client...” + inputString 但随后我在客户端收到 FileNotFoundException。我通过查看教程将其拼凑在一起,所以我想我在这里遗漏了一些东西,希望得到任何建议。

最佳答案

在上面的示例中尝试从输入流读取数据之前,请关闭输出流。

作为替代方案,请使用 http 客户端库,例如 HTTPClientResty .

使用 Resty,您的客户端代码将如下所示:

Resty r = new Resty();
String result = r.text(url).toString();

对于 GET对于使用简单表单的 POST:

r.text(url,form(yourformdata)).toString();

免责声明:我是 Resty 的作者

关于java - 调用 Spring 服务(导入 java.net.URL.* 包) POST 其调用但在响应时收到 java.io.FileNotFoundException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5995336/

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