我正在使用自定义标头向 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 回答
requestHeader.withHeader
返回带有添加 Headers 的新对象,但您编写的代码将返回原始requestHeader
对象 . 通常,许多Lagom API遵循使用不可变对象的原则,使用返回新的修改实例的方法,而不是更改调用该方法的实例 .试试这个: