问题描述
我们正在使用Java / Kotlin使用新的gcp云功能。
与当前参考实现一样,我们将返回 org.springframework.messaging.support.Genericmessage 对象。
所以我们的代码看起来像这样(科特琳):
fun generatePdfInBase64(message: Message<Map<String,Any>>): Message<*> {
val document = process(message)
val encoded = Base64.getEncoder().encodetoString(document.document)
return Genericmessage(encoded)
}
我们找不到任何将自定义http响应代码包含到我们的消息中的方法,例如201之类的。该功能只会在没有异常的情况下响应200或500。
有人知道这样做的方法吗?
最美好的祝愿
安迪
解决方法
正如官方documentation所提到的那样,HttpResponse类具有一个名为setStatusCode的方法,您可以在其中方便地设置状态编号
例如:
switch (request.getMethod()) {
case "GET":
response.setStatusCode(HttpURLConnection.HTTP_OK);
writer.write("Hello world!");
break;
另一方面,GenericMessage的constructor接收有效负载作为参数,因此,我认为您可以创建json格式的字符串,并使用构造函数来创建具有所需状态响应的GenericMessage实例。
如果您想进一步了解法规代码,请查看此document。