java - Lagom 发送自定义标头
问题描述
我正在使用 Lagom POC 向具有自定义标头的非 lagom 服务发送 POST 请求。就我而言,我正在尝试使用 postman-echo 来测试自定义标题。但是,尽管我相应地进行了代码更改,但似乎没有设置标题:
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 中正确映射的 echo 中获取此标头。
这是来自我的 GitHub 的完整代码 https://github.com/sourabhsar/Lagom-Unmanaged-Service-Demo/tree/poc/lagom-request-response
我按照此处提到的步骤操作: https ://groups.google.com/forum/#!topic/lagom-framework/yvKmqvtZWFs
并且还关注了其他一些博客/文章。但是到目前为止,我还没有找到任何他们正在使用自定义标头向非托管外部服务发送请求的博客。我不确定我的代码有什么问题。
解决方案
requestHeader.withHeader
返回带有添加头的新对象,但您编写的代码返回原始requestHeader
对象。通常,许多 Lagom API 遵循使用不可变对象的原则,其方法返回一个新的、已修改的实例,而不是更改调用该方法的实例。
尝试这个:
.handleRequestHeader(requestHeader -> {
RequestHeader modifiedRequestHeader =
requestHeader.withHeader("Authorization","Basic mncndsjna");
System.out.println("My Headers>>>>>>>> " + modifiedRequestHeader);
return modifiedRequestHeader;
})
推荐阅读
- java - 无法在 Android 中使用 retrofit2 获取 JSON 数据
- kubectl - 如何使用 kubectl -o jsonpath 仅检索 kubectl.kubernetes.io/last-applied-configuration?
- java - 如何打印我正在生成的房屋的 x 和 y 值?
- c# - How to get the "leftover" records after a Linq Join
- python - 如何为每个独立有自己标签的子图设置一个通用的总体 y 轴标签?
- c++ - 从直方图opencv中的峰值获取色调值
- reactjs - 胜利缩放和画笔指南的示例代码
- php - 无法覆盖 FOSOAuthServerBundle tokenAction
- django - 如何在 Django 中使用字典更新模型表
- django - 哪个库用于在 Django 的 forms.py 中导入 RadioInput(小部件)?