我不想做任何复杂的事情:我正在尝试从客户端到服务器进行尽可能简单的传输。
我知道使用 HTTP 客户端/服务器实现这一点的方法是使用 POST。
我一直在尝试让一个简单的 POST 请求工作 6-7 个小时,但一无所获。 所以我想是时候停止尝试自己解决这个问题并在这里发布一个问题:使用 POST 请求将值从 HTTP 客户端传输到用 Java 编码的 HTTP 服务器的最简单方法是什么?
我想我了解如何从客户端发送数据,但我找不到任何地方解释如何在服务器上接收数据。
这是我在我的服务器程序中使用的(通过教程工作)只是为了测试来自客户端的 GET 请求(它有效):
public static void main(String args[]) throws IOException {
HttpServer server = HttpServer.create(new InetSocketAddress(8000),0);
server.createContext("/test", new testHandler());
server.setExecutor(null);
server.start();
}
static class testHandler implements HttpHandler {
@Override
public void handle(HttpExchange t) throws IOException {
String test = "Hello World!";
t.sendResponseHeaders(200,test.length());
OutputStream stream = t.getResponseBody();
stream.write(test.getBytes());
stream.close();
}
我将如何修改以上代码以适应 POST 请求? (即接受来自客户端的值)。
最佳答案
我想通了!
我所要做的就是在 HttpExchange 对象的输入流上使用 BufferedReader(因为我在客户端 POST 请求中通过输出流发送值)。
我刚刚将此添加到我上面提到的服务器代码中:
BufferedReader input = new BufferedReader(new InputStreamReader(t.getRequestBody()));
int a = input.read();
String test = "You sent the value "+a+" to the server";
此消息现在可以完美地打印回我的客户端程序。
关于java - 使用 POST 请求将值从 HTTP 客户端发送到 HTTP 服务器,用 Java 编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33252800/