首页 文章

Lagom发送自定义标头

提问于
浏览
0

我正在使用自定义标头向 Non lagom service 发送POST请求时使用Lagom POC . 在我的情况下,我试图打postman-echo来测试自定义 Headers . 但是,虽然我相应地更改了代码,但它看起来没有设置标头:

public CompletionStage<DsapAuthorizationResponse> hitAPI(AuthorizationRequest request) {
            DsapWSRequest dsapWSRequest = new DsapWSRequest();
            dsapWSRequest.username = request.username;
            dsapWSRequest.password = request.password;
            CompletionStage<DsapAuthorizationResponse> dsapresponse = dsapExternalService
                    .authenticate()
                    .handleRequestHeader(requestHeader -> {
                        requestHeader.withHeader("Authorization","Basic mncndsjna");
                        System.out.println("My Headers>>>>>>>> " + requestHeader);
                        return requestHeader;
                    })
                    .handleResponseHeader((responseHeader,b) -> {
                        System.out.println("RESPonse Header >>>>>>> : "+responseHeader);
                        return b;
                    })
                    .invoke(dsapWSRequest);
            return dsapresponse;

        }

在上面的代码头中,请求中未设置授权 . 我没有在我的POJO中正确映射的回声中获得此 Headers .

这是我的GitHub的完整代码https://github.com/sourabhsar/Lagom-Unmanaged-Service-Demo/tree/poc/lagom-request-response

我按照这里提到的步骤:https://groups.google.com/forum/#!topic/lagom-framework/yvKmqvtZWFs

并且还关注了其他一些博客/文章 . 但到目前为止,我还没有发现任何博客,他们正在向自定义 Headers 发送请求 unmanaged external service . 我不确定我的代码中有什么问题 .

1 回答

  • 1

    requestHeader.withHeader 返回带有添加 Headers 的新对象,但您编写的代码将返回原始 requestHeader 对象 . 通常,许多Lagom API遵循使用不可变对象的原则,使用返回新的修改实例的方法,而不是更改调用该方法的实例 .

    试试这个:

    .handleRequestHeader(requestHeader -> {
        RequestHeader modifiedRequestHeader =
            requestHeader.withHeader("Authorization","Basic mncndsjna");
        System.out.println("My Headers>>>>>>>> " + modifiedRequestHeader);
        return modifiedRequestHeader;
    })
    

相关问题