对于get请求是视频,同时将视频流传给前端问题
生活随笔
收集整理的這篇文章主要介紹了
对于get请求是视频,同时将视频流传给前端问题
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
@RequestMapping("/bbb")public String text(HttpServletRequest re, HttpServletResponse rs) {
CloseableHttpClient httpClient = null;
/*解決信任SSL證書(PKIX path building failed問題)
*/try {SSLContext sslContext = SSLContextBuilder.create().useProtocol(SSLConnectionSocketFactory.SSL).loadTrustMaterial((x, y) -> true).build();RequestConfig config = RequestConfig.custom().setConnectTimeout(5000).setSocketTimeout(5000).build();httpClient = HttpClientBuilder.create().setDefaultRequestConfig(config).setSSLContext(sslContext).setSSLHostnameVerifier((x, y) -> true).build();} catch (Exception e) {e.printStackTrace();}String flag = "0";HttpGet httpGet = new HttpGet(url);httpGet.setHeader(new BasicHeader("Cookie", Cookie));// response 對象CloseableHttpResponse response = null;response = httpClient.execute(httpGet);// 判斷返回狀態是否為200if (response.getStatusLine().getStatusCode() == 200) {HttpEntity entity = response.getEntity();//現在用流來接受entity InputStream in=**entity.getContent();** int count = 0; //下面進行寫入字節while (count == 0) { count = Integer.parseInt(""+entity.getContentLength());//in.available(); } byte[] bytes = new byte[count]; int readCount = 0; // 已經成功讀取的字節的個數 while (readCount <= count) { if(readCount == count)break; readCount += in.read(bytes, readCount, count - readCount); } OutputStream out=null;rs.setContentType("video/mp4");out = rs.getOutputStream();out.write(bytes);out.flush();out.close();}//別忘記關閉連接 省略不寫了}
前端:
<video width="1120" height="540" controls="controls" id= "video" preload="auto"> <source src= "../bbb.do" type-"video/mp4" > </video>最后完美解決
總結
以上是生活随笔為你收集整理的对于get请求是视频,同时将视频流传给前端问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 解决在freemarker中报空问题
- 下一篇: 服务上的图片直接在浏览器上可以打开,但是