首页 > 解决方案 > 创建一个虚拟的 java.net.http.HttpResponse 而不发出 HTTP 请求

问题描述

我有一个返回java.net.http.HttpResponse对象或 null 的方法。这意味着我调用此方法的每个地方都需要在检查响应内容之前进行 nullcheck。

即今天我有:

public HttpResponse<String> makeRequest(HttpRequest request) {
    if (condition) {
        return client.send(request, HttpResponse.BodyHandlers.ofString());
    }
    return null; // Want to change this to a mock instance
}

为了防止在我调用此方法的每个地方进行不必要的 null 检查,我想创建一个模拟java.net.http.HttpResponse实例,以便可以传递它而不是 null。理想情况下,可能是一个请求,其中包含statuscode=500一些 Json 实体作为主体。如何在 HttpResponse不发出实际 HTTP 请求的情况下创建实例?

我无法创建HttpResponse实例或HttpResponseImpl直接创建实例,因为两者都是受包保护的类。所以不确定如何进行。此方法在不同的地方使用,因此修复此问题无需在每个地方进行空检查。

非常感谢帮助

标签: javanullhttpresponsejava-11

解决方案


推荐阅读