gpt4 book ai didi

java - Request-Body(req.body) 显示值,但 Request-QueryParams(req.queryParams) 显示空值?

转载 作者:行者123 更新时间:2023-12-02 01:26:02 26 4
gpt4 key购买 nike

我使用 vuejs-axios 从客户端获取数据并将其发布到服务器端。在服务器端,我使用了 java,而我使用 SparkJAVA 框架来处理请求响应。下面提到的代码块是我用来将表单数据从 vuejs 发布到 java 的代码。

const formData = new FormData();
formData.append("name", this.name);
formData.append("address", this.address);
console.log(formData);
axios
.post("http://localhost:1234/formData", formData)
.then(response => {
console.log(response);
})
.catch(err => {
console.log(err);
});

下面提到的代码用于解析从vuejs获取的FormData。

 public static void main(String[] args) {

Spark.port(1234);
Main.apply();

get("/", (req, res) -> {
return new ModelAndView(null, "StartPage.ftl");
}, new FreeMarkerEngine());

post("/formData", (req, res) -> {
return FormController.showFormData(req, res);
});
}

public class FormController {

public static Logger logger = LogManager.getLogger(FormController.class);

public static String showFormData(Request req, Response res) {
System.out.println("Data body: " + req.body());
System.out.println("Name: " + req.queryParams("name"));
System.out.println("Address: " + req.queryParams("address"));

return "Well Done!!!";
}
}

下面提到的是输出:

Content-Disposition: form-data; name="name"
Daniel
------WebKitFormBoundarydSA5AgIIhlMNCqA2

Content-Disposition: form-data; name="address"
New York
------WebKitFormBoundarydSA5AgIIhlMNCqA2--

Name: null
Address: null

我在 req.body() 中收到响应,但在 req.queryParams() 中没有收到响应。为什么?而且 req.body() 的响应看起来有点不寻常。

最佳答案

那是因为 req.queryParams 用于获取 URL 参数。示例:http://localhost:1234/formData?name=Bruno&address=earth 。尝试使用 official documentation of Spark Java 中的这个示例。在这里,它教您如何从多部分中获取文件。进行一些更改后可能会起作用。

关于java - Request-Body(req.body) 显示值,但 Request-QueryParams(req.queryParams) 显示空值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57584926/

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