我正在使用OpenAPI生成器来生成一个Java11HTTPClient,用于符合OpenAPI规范的服务。
问题是:该服务需要基本身份验证,但它不会用WWW-Authenticate头来挑战客户机,因此Java11HTTPClient不会发送由构建器配置的基本身份验证。解决方法是按照Authorization中的建议,将这条线头直接添加到请求中。
现在:从4.3.1版本开始,OpenAPI生成器将不会为我提供一个自定义HTTP请求的接口,所以我想知道是否最好重写负责任的模板(api.mustache:126),或者是否有一个更干净的替代方案来完成此任务。
发布于 2022-04-12 16:45:31
我与您的问题相同,解决方案是使用生成的ApiClient类及其RequestInterceptor字段。它允许在将请求头发送到服务器之前自定义请求头:
ApiClient client = new ApiClient();
client.setRequestInterceptor(new Consumer<HttpRequest.Builder>() {
@Override
public void accept(HttpRequest.Builder builder) {
builder.header("Authorization", "Basic " + Base64.getEncoder().encodeToString("foo:bar"));
}
});如果您需要捕获应答头,也有上面所述响应拦截器的支持版本。
https://stackoverflow.com/questions/64751265
复制相似问题