挂脖发送自定义 header

Lagom Send custom header

我正在研究 Lagom POC,使用自定义 Header 向 非 lagom 服务 发送 POST 请求。在我的例子中,我试图点击 postman-echo 来测试自定义 header。 但是,尽管我相应地更改了代码,但看起来 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;

        }

在上面的代码中header请求中没有设置权限。我没有在我的 POJO 中正确映射的回声中得到这个 header。

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

我按照此处提到的步骤操作: https://groups.google.com/forum/#!topic/lagom-framework/yvKmqvtZWFs

并且还关注了其他几个 blogs/articles。 但是到目前为止,我还没有找到任何博客,他们使用自定义 header 向 非托管外部服务 发送请求。我不确定我的代码有什么问题。

requestHeader.withHeader returns a new object 添加了 header,但是你写的代码 return是原来的requestHeaderobject。通常,许多 Lagom API 遵循使用不可变 objects 的原则,方法 return 一个新的、修改后的实例,而不是更改调用该方法的实例。

试试这个:

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