1:業務需求,公司想做淘寶聯盟掙點錢,但是由於我們平台是微信公眾號的,這樣淘寶的圖片鏈接直接使用是不行的,當時也沒什么好的辦法,由於公司用戶量也不大,所以就在后台把圖片處理成流的形式,在前端顯示,好了直接貼代碼
Controller
/** * 淘寶推薦商品 * @return * @throws ApiException */ @RequestMapping("/getAnswerMaterial") public ResponseModel getAnswerMaterial(Material material,HttpServletRequest request , HttpServletResponse response) throws ApiException{ String scheme = request.getScheme()+"://"+ request.getServerName(); System.out.println(scheme); try { List<AnswerMaterial> answerMaterialList = campusCircleTaoBaoApi.getAnswerMaterialList(material); for (AnswerMaterial answerMaterial : answerMaterialList) { /* answerMaterial .setPict_url("http://localhost:8080/taoBaoImage/getMainPicture?pictUrl=" + answerMaterial.getPict_url());*/ answerMaterial .setPict_url(scheme+"/taoBaoImage/getMainPicture?pictUrl=" + answerMaterial.getPict_url()); } return new ResponseModel(answerMaterialList); } catch (BizException e) { LOGGER.error("getAnswerMaterial error"); return new ResponseModel(e.getErrcode(), e.getErrm(), null); } }
Pict_url 是圖片的鏈接 ,現在處理把以前的淘寶圖片鏈接變成一個請求接口 以流的形式
@RequestMapping("/getMainPicture")
public void getImage(String pictUrl, HttpServletRequest request, HttpServletResponse response) {
try {
String imageUrl ="https:"+pictUrl;
URL url = new URL(imageUrl);
BufferedImage image = ImageIO.read(url);
response.setContentType("image/jpg");
ServletOutputStream os = response.getOutputStream();
ImageIO.write(image, "jpg", os);
os.flush();
os.close();
} catch (Exception e) {
LOGGER.error("getMainPicture error");
e.printStackTrace();
}
}
