[英]How to receive and extract json in HTTP GET request body
我对 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 传递参数。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.