将发布请求发送到端点,但忽略响应

时间:2020-06-11 10:32:58

标签: java rest httpurlconnection

我正在编写一个Java方法来向我们的一个端点触发发布请求。 方法只需担心的是发送请求,而不必担心端点是否已收到请求(即发即忘)。

我如何使用HttpUrlConnection实现此目标?

我有以下内容,但我不确定是否触发connection.disconnect();是最佳做法?

    HttpURLConnection connection = (HttpURLConnection) EndpointUrl.openConnection();
    // Set the http rest call to POST.
    connection.setRequestMethod("POST");
    // Set the request properties, including the Authorization tag.
    connection.setRequestProperty("Content-Type", "application/json");
    connection.setRequestProperty("Accept", "application/json");
    connection.setRequestProperty("Authorization", header);
    connection.setDoOutput(true);

    ObjectMapper mapper = new ObjectMapper();
    try(OutputStream outputStream = connection.getOutputStream()) {
        byte[] input = mapper.writeValueAsBytes(log);
        outputStream.write(input, 0, input.length);           
    }
    connection.disconnect();

1 个答案:

答案 0 :(得分:1)

来自docs.oracle.com

disconnect()

表示在不久的将来不太可能向服务器发出其他请求。

为了简单地向客户端发送消息然后断开连接,我认为这是最安全的做法。请注意,调用disconnect()并不意味着可以将HttpURLConnection实例重新用于新连接。