![](/img/trans.png)
[英]How to convert Spring WebClient Response to ResponseEntity?
[英]Okhttp convert Response to Spring ResponseEntity
我有一個帶有 POST REST api 的 Springboot 2.2 網絡服務。 我正在使用 Okhttp 客戶端向第三方服務發出請求。 我想將第三方服務的確切響應返回給我的網絡服務的調用者。 所有 okhttp 食譜參考:
if (!response.isSuccessful()) throw new IOException("Unexpected code " + response);
System.out.println(response.body().string());
我嘗試在我的 api 中返回 okhttp 響應,但我只返回調用者示例:
{
"redirect": false,
"successful": true
}
所以它不會插入從第三方服務返回的消息。
有誰知道如何將 Okhttp Response 對象轉換為 Spring ResponseEntity 對象,以便我可以返回http 響應代碼和消息
在這種情況下,你可以使用HttpServletResponse
在Spring Web網頁直接管從okhttp ResponseBody給予的的OutputStream InputStream的HttpServletResponse
。
@PostMapping(path="/my/webservice")
public void postSomething(HttpServletResponse response)throws IOException{
okhttp3.Response redirectedResponse = redirectCall();
if(redirectedResponse.isSuccessful())
pipe(response.getOutputStream(), redirectedResponse.body.byteStream());
}
private void pipe(OutputStream output, InputStream input)throws IOException{
byte chunk[] = new byte[1024];
while(input.read(chunk, 0, 1024) != -1){
output.write(chunk);
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.