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(); } }