|
|
|
@ -10,6 +10,7 @@ import com.jfinal.upload.MultipartRequest;
|
|
|
|
|
import com.jfinal.upload.UploadFile;
|
|
|
|
|
import io.jsonwebtoken.Claims;
|
|
|
|
|
import okhttp3.*;
|
|
|
|
|
import org.apache.commons.io.IOUtils;
|
|
|
|
|
|
|
|
|
|
import javax.servlet.http.HttpServletRequest;
|
|
|
|
|
import javax.servlet.http.HttpServletResponse;
|
|
|
|
@ -55,16 +56,46 @@ public class RouterHandler extends Handler {
|
|
|
|
|
private void executeRequest(Request request, HttpServletResponse res) throws IOException {
|
|
|
|
|
Response response = OK_HTTP_CLIENT.newCall(request).execute();
|
|
|
|
|
if (response.isSuccessful()) {
|
|
|
|
|
String responseBody = null;
|
|
|
|
|
if (response.body() != null) {
|
|
|
|
|
responseBody = response.body().string();
|
|
|
|
|
ResponseBody body = response.body();
|
|
|
|
|
if (body != null) {
|
|
|
|
|
// 获取Content-Type
|
|
|
|
|
String contentType = response.header("Content-Type");
|
|
|
|
|
|
|
|
|
|
if (contentType != null && contentType.startsWith("image/")) {
|
|
|
|
|
// 处理图片响应
|
|
|
|
|
handleImageResponse(res, body, contentType);
|
|
|
|
|
} else {
|
|
|
|
|
// 处理文本响应
|
|
|
|
|
handleTextResponse(res, body);
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
renderJson(res, new RetBean(RetBean.ERROR, "响应体为空").toString());
|
|
|
|
|
}
|
|
|
|
|
renderJson(res, responseBody);
|
|
|
|
|
} else {
|
|
|
|
|
renderJson(res, new RetBean(RetBean.ERROR, "请求失败!").toString());
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 处理图片响应
|
|
|
|
|
private void handleImageResponse(HttpServletResponse res, ResponseBody body, String contentType) throws IOException {
|
|
|
|
|
// 设置响应头
|
|
|
|
|
res.setContentType(contentType);
|
|
|
|
|
res.setHeader("Cache-Control", "no-store");
|
|
|
|
|
res.setHeader("Pragma", "no-cache");
|
|
|
|
|
res.setDateHeader("Expires", 0);
|
|
|
|
|
|
|
|
|
|
// 将图片数据写入响应
|
|
|
|
|
try (InputStream inputStream = body.byteStream()) {
|
|
|
|
|
IOUtils.copy(inputStream, res.getOutputStream());
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 处理文本响应
|
|
|
|
|
private void handleTextResponse(HttpServletResponse res, ResponseBody body) throws IOException {
|
|
|
|
|
String responseBody = body.string();
|
|
|
|
|
renderJson(res, responseBody);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static RequestBody createRequestBody(HttpServletRequest req) {
|
|
|
|
|
FormBody.Builder formBodyBuilder = new FormBody.Builder();
|
|
|
|
|
// 遍历请求中的参数
|
|
|
|
|