java - 使用 POST 请求将值从 HTTP 客户端发送到 HTTP 服务器,用 Java 编码

标签 java rest http client-server

我不想做任何复杂的事情:我正在尝试从客户端到服务器进行尽可能简单的传输。

我知道使用 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/

相关文章:

api - 在 POST 中将数据安全地发送到 REST API

Java数组矩阵数

java - 当满足条件时,如何让我的脚本运行另一个脚本? ( java )

rest - HTTP和Rest有什么关系?

ios - 移动应用程序的视频流

ios - 将文件上传到表单并使用 REST api 提交

javascript - 无法以 Angular 正确设置某些 HTTP header 键值对

java - 具有并发重叠任务的scheduleWithFixedDelay

java - 如何在Java命名参数jdbc模板批量更新插入查询中映射具有特殊字符的列?

c# - 我应该从哪里开始制作基于.NET 框架的RESTful Web 服务?