如何在HTTPGET请求体中接收和提取json



我对Java很陌生,我正在尝试创建一个处理GET请求的API。基本代码可以工作,但不能接收正文中的任何参数。这些代码大多基于我发现的代码。如果我想处理请求主体中的json数据,我需要更改什么?

无参数工作的API:

import com.sun.net.httpserver.HttpServer;
import java.io.IOException;
import java.io.OutputStream;
import java.net.InetSocketAddress;
public class API {
public static void main(String[] args) throws IOException {
String responseText = calculation.data();
HttpServer server = HttpServer.create(new InetSocketAddress(8080), 0);
server.createContext("/api", (exchange -> {
if ("GET".equals(exchange.getRequestMethod())) {
exchange.sendResponseHeaders(200, responseText.getBytes().length);
OutputStream output = exchange.getResponseBody();
output.write(responseText.getBytes());
output.flush();
} else {
exchange.sendResponseHeaders(405, -1);
}
exchange.close();
}));
server.setExecutor(null);
server.start();
}
}

如果实现得当,GET请求方法不会接受正文。您可以使用请求方法的处理程序,该处理程序可以接受正文(PUT、POST等(,即else if ("POST".equals(exchange.getRequestMethod())) {或通过URL传递参数。

最新更新