| | |
| | | |
| | | private final static Logger logger = LoggerFactory.getLogger(ZLMRESTfulUtils.class); |
| | | |
| | | |
| | | |
| | | private OkHttpClient client; |
| | | |
| | | public interface RequestCallback{ |
| | | void run(JSONObject response); |
| | | } |
| | | |
| | | private OkHttpClient getClient(){ |
| | | OkHttpClient.Builder httpClientBuilder = new OkHttpClient.Builder(); |
| | | //todo 暂时写死超时时间 均为5s |
| | | httpClientBuilder.connectTimeout(5,TimeUnit.SECONDS); //设置连接超时时间 |
| | | httpClientBuilder.readTimeout(5,TimeUnit.SECONDS); //设置读取超时时间 |
| | | if (logger.isDebugEnabled()) { |
| | | HttpLoggingInterceptor logging = new HttpLoggingInterceptor(message -> { |
| | | logger.debug("http请求参数:" + message); |
| | | }); |
| | | logging.setLevel(HttpLoggingInterceptor.Level.BASIC); |
| | | // OkHttp進行添加攔截器loggingInterceptor |
| | | httpClientBuilder.addInterceptor(logging); |
| | | if (client == null) { |
| | | OkHttpClient.Builder httpClientBuilder = new OkHttpClient.Builder(); |
| | | //todo 暂时写死超时时间 均为5s |
| | | // 设置连接超时时间 |
| | | httpClientBuilder.connectTimeout(5,TimeUnit.SECONDS); |
| | | // 设置读取超时时间 |
| | | httpClientBuilder.readTimeout(10,TimeUnit.SECONDS); |
| | | // 设置连接池 |
| | | httpClientBuilder.connectionPool(new ConnectionPool(16, 5, TimeUnit.MINUTES)); |
| | | if (logger.isDebugEnabled()) { |
| | | HttpLoggingInterceptor logging = new HttpLoggingInterceptor(message -> { |
| | | logger.debug("http请求参数:" + message); |
| | | }); |
| | | logging.setLevel(HttpLoggingInterceptor.Level.BASIC); |
| | | // OkHttp進行添加攔截器loggingInterceptor |
| | | httpClientBuilder.addInterceptor(logging); |
| | | } |
| | | client = httpClientBuilder.build(); |
| | | } |
| | | return httpClientBuilder.build(); |
| | | return client; |
| | | |
| | | } |
| | | |
| | | |
| | |
| | | .build(); |
| | | logger.info(request.toString()); |
| | | try { |
| | | OkHttpClient client = new OkHttpClient.Builder() |
| | | .readTimeout(10, TimeUnit.SECONDS) |
| | | .build(); |
| | | OkHttpClient client = getClient(); |
| | | Response response = client.newCall(request).execute(); |
| | | if (response.isSuccessful()) { |
| | | if (targetPath != null) { |
| | |
| | | FileOutputStream outStream = new FileOutputStream(snapFile); |
| | | |
| | | outStream.write(Objects.requireNonNull(response.body()).bytes()); |
| | | outStream.flush(); |
| | | outStream.close(); |
| | | } else { |
| | | logger.error(String.format("[ %s ]请求失败: %s %s", url, response.code(), response.message())); |
| | |
| | | sendPost(mediaServerItem, "kick_sessions",param, null); |
| | | } |
| | | |
| | | public void getSnap(MediaServerItem mediaServerItem, String flvUrl, int timeout_sec, int expire_sec, String targetPath, String fileName) { |
| | | public void getSnap(MediaServerItem mediaServerItem, String streamUrl, int timeout_sec, int expire_sec, String targetPath, String fileName) { |
| | | Map<String, Object> param = new HashMap<>(3); |
| | | param.put("url", flvUrl); |
| | | param.put("url", streamUrl); |
| | | param.put("timeout_sec", timeout_sec); |
| | | param.put("expire_sec", expire_sec); |
| | | sendGetForImg(mediaServerItem, "getSnap", param, targetPath, fileName); |