Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
ac13
GSYVideoPlayer
提交
171254f2
G
GSYVideoPlayer
项目概览
ac13
/
GSYVideoPlayer
与 Fork 源项目一致
从无法访问的项目Fork
通知
7
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
G
GSYVideoPlayer
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
171254f2
编写于
3月 23, 2020
作者:
G
guoshuyu
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
proxy cache support ssl error
上级
2c82da1c
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
64 addition
and
5 deletion
+64
-5
gsyVideoPlayer-java/build.gradle
gsyVideoPlayer-java/build.gradle
+2
-2
gsyVideoPlayer-proxy_cache/src/main/java/com/danikula/videocache/HttpUrlSource.java
.../src/main/java/com/danikula/videocache/HttpUrlSource.java
+60
-1
gsyVideoPlayer/build.gradle
gsyVideoPlayer/build.gradle
+2
-2
未找到文件。
gsyVideoPlayer-java/build.gradle
浏览文件 @
171254f2
...
...
@@ -40,10 +40,10 @@ dependencies {
api
viewDependencies
.
ijkplayer_java
api
viewDependencies
.
ijkplayer_exo
api
viewDependencies
.
transitionseverywhere
//
api project(':gsyVideoPlayer-proxy_cache')
api
project
(
':gsyVideoPlayer-proxy_cache'
)
//api project(':gsyVideoPlayer-base')
api
"com.shuyu:gsyVideoPlayer-base:$gsyVideoVersion"
api
"com.shuyu:gsyvideoplayer-androidvideocache:$gsyVideoVersion"
//
api "com.shuyu:gsyvideoplayer-androidvideocache:$gsyVideoVersion"
}
...
...
gsyVideoPlayer-proxy_cache/src/main/java/com/danikula/videocache/HttpUrlSource.java
浏览文件 @
171254f2
...
...
@@ -14,8 +14,19 @@ import java.io.InputStream;
import
java.io.InterruptedIOException
;
import
java.net.HttpURLConnection
;
import
java.net.URL
;
import
java.security.KeyManagementException
;
import
java.security.NoSuchAlgorithmException
;
import
java.security.cert.CertificateException
;
import
java.util.Map
;
import
javax.net.ssl.HostnameVerifier
;
import
javax.net.ssl.HttpsURLConnection
;
import
javax.net.ssl.SSLContext
;
import
javax.net.ssl.SSLSession
;
import
javax.net.ssl.SSLSocketFactory
;
import
javax.net.ssl.TrustManager
;
import
javax.net.ssl.X509TrustManager
;
import
static
com
.
danikula
.
videocache
.
Preconditions
.
checkNotNull
;
import
static
com
.
danikula
.
videocache
.
ProxyCacheUtils
.
DEFAULT_BUFFER_SIZE
;
import
static
java
.
net
.
HttpURLConnection
.
HTTP_MOVED_PERM
;
...
...
@@ -152,7 +163,55 @@ public class HttpUrlSource implements Source {
int
redirectCount
=
0
;
String
url
=
this
.
sourceInfo
.
url
;
do
{
connection
=
(
HttpURLConnection
)
new
URL
(
url
).
openConnection
();
if
(
url
.
startsWith
(
"https"
))
{
/**去除证书限制**/
connection
=
(
HttpURLConnection
)
new
URL
(
url
).
openConnection
();
((
HttpsURLConnection
)
connection
).
setHostnameVerifier
(
new
HostnameVerifier
()
{
@Override
public
boolean
verify
(
String
hostname
,
SSLSession
session
)
{
return
true
;
}
});
// Create a trust manager that does not validate certificate chains
final
TrustManager
[]
trustAllCerts
=
new
TrustManager
[]{
new
X509TrustManager
()
{
@Override
public
void
checkClientTrusted
(
java
.
security
.
cert
.
X509Certificate
[]
chain
,
String
authType
)
throws
CertificateException
{
}
@Override
public
void
checkServerTrusted
(
java
.
security
.
cert
.
X509Certificate
[]
chain
,
String
authType
)
throws
CertificateException
{
}
@Override
public
java
.
security
.
cert
.
X509Certificate
[]
getAcceptedIssuers
()
{
return
null
;
}
}
};
// Install the all-trusting trust manager
final
SSLContext
sslContext
;
try
{
sslContext
=
SSLContext
.
getInstance
(
"SSL"
);
sslContext
.
init
(
null
,
trustAllCerts
,
new
java
.
security
.
SecureRandom
());
// Create an ssl socket factory with our all-trusting manager
final
SSLSocketFactory
sslSocketFactory
=
sslContext
.
getSocketFactory
();
((
HttpsURLConnection
)
connection
).
setSSLSocketFactory
(
sslSocketFactory
);
((
HttpsURLConnection
)
connection
).
setHostnameVerifier
(
new
HostnameVerifier
()
{
@Override
public
boolean
verify
(
String
hostname
,
SSLSession
session
)
{
return
true
;
}
});
}
catch
(
NoSuchAlgorithmException
e
)
{
e
.
printStackTrace
();
}
catch
(
KeyManagementException
e
)
{
e
.
printStackTrace
();
}
/**去除证书限制**/
}
else
{
connection
=
(
HttpURLConnection
)
new
URL
(
url
).
openConnection
();
}
injectCustomHeaders
(
connection
,
url
);
if
(
offset
>
0
)
{
connection
.
setRequestProperty
(
"Range"
,
"bytes="
+
offset
+
"-"
);
...
...
gsyVideoPlayer/build.gradle
浏览文件 @
171254f2
...
...
@@ -35,7 +35,7 @@ android {
dependencies
{
implementation
fileTree
(
dir:
'libs'
,
include:
[
'*.jar'
])
//
api project(':gsyVideoPlayer-java')
api
project
(
':gsyVideoPlayer-java'
)
//api project(':gsyVideoPlayer-exo_player2')
//api project(':gsyVideoPlayer-armv5')
//api project(':gsyVideoPlayer-armv7a')
...
...
@@ -48,7 +48,7 @@ dependencies {
//api "com.shuyu:GSYVideoPlayer:$gsyVideoVersion"
api
"com.shuyu:gsyVideoPlayer-java:$gsyVideoVersion"
//
api "com.shuyu:gsyVideoPlayer-java:$gsyVideoVersion"
api
"com.shuyu:GSYVideoPlayer-exo2:$gsyVideoVersion"
api
"com.shuyu:gsyVideoPlayer-armv5:$gsyVideoVersion"
api
"com.shuyu:gsyVideoPlayer-armv7a:$gsyVideoVersion"
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录