挂脖发送自定义 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是原来的requestHeader
object。通常,许多 Lagom API 遵循使用不可变 objects 的原则,方法 return 一个新的、修改后的实例,而不是更改调用该方法的实例。
试试这个:
.handleRequestHeader(requestHeader -> {
RequestHeader modifiedRequestHeader =
requestHeader.withHeader("Authorization","Basic mncndsjna");
System.out.println("My Headers>>>>>>>> " + modifiedRequestHeader);
return modifiedRequestHeader;
})
我正在研究 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是原来的requestHeader
object。通常,许多 Lagom API 遵循使用不可变 objects 的原则,方法 return 一个新的、修改后的实例,而不是更改调用该方法的实例。
试试这个:
.handleRequestHeader(requestHeader -> {
RequestHeader modifiedRequestHeader =
requestHeader.withHeader("Authorization","Basic mncndsjna");
System.out.println("My Headers>>>>>>>> " + modifiedRequestHeader);
return modifiedRequestHeader;
})