package com.yami.trading.common.handler; import cn.hutool.core.util.CharsetUtil; import com.yami.trading.common.domain.Result; import com.yami.trading.common.exception.YamiShopBindException; import com.yami.trading.common.util.Json; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.http.MediaType; import org.springframework.stereotype.Component; import org.springframework.web.context.request.RequestContextHolder; import org.springframework.web.context.request.ServletRequestAttributes; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.io.PrintWriter; /** * @author 菠萝凤梨 * @date 2022/3/28 14:15 */ @Component public class HttpHandler { private static final Logger logger = LoggerFactory.getLogger(HttpHandler.class); public void printServerResponseToWeb(String str, int status) { ServletRequestAttributes requestAttributes = (ServletRequestAttributes) RequestContextHolder .getRequestAttributes(); if (requestAttributes == null) { logger.error("requestAttributes is null, can not print to web"); return; } HttpServletResponse response = requestAttributes.getResponse(); if (response == null) { logger.error("httpServletResponse is null, can not print to web"); return; } logger.error("response error: " + str); response.setCharacterEncoding(CharsetUtil.UTF_8); response.setContentType(MediaType.APPLICATION_JSON_VALUE); response.setStatus(200); PrintWriter printWriter = null; try { printWriter = response.getWriter(); Result result=new Result(); result.setCode(status); result.setMsg(str); printWriter.write(Json.toJsonString(result)); } catch (IOException e) { throw new YamiShopBindException("io 异常", e); } } }