Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
DiDi
DoraemonKit
提交
52a34174
D
DoraemonKit
项目概览
DiDi
/
DoraemonKit
12 个月 前同步成功
通知
166
Star
19623
Fork
3062
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
DoraemonKit
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
52a34174
编写于
8月 09, 2019
作者:
糕冷羊
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
update 网络库优化
上级
ce3f68e2
变更
9
隐藏空白更改
内联
并排
Showing
9 changed file
with
179 addition
and
94 deletion
+179
-94
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/network/httpurlconnection/HttpMonitorInterceptor.java
...kit/network/httpurlconnection/HttpMonitorInterceptor.java
+24
-21
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/network/httpurlconnection/inspector/URLConnectionInspectorHeaders.java
...rlconnection/inspector/URLConnectionInspectorHeaders.java
+50
-0
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/network/httpurlconnection/inspector/URLConnectionInspectorRequest.java
...rlconnection/inspector/URLConnectionInspectorRequest.java
+6
-6
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/network/httpurlconnection/inspector/URLConnectionInspectorResponse.java
...lconnection/inspector/URLConnectionInspectorResponse.java
+7
-8
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/network/httpurlconnection/interceptor/HttpRequest.java
...it/network/httpurlconnection/interceptor/HttpRequest.java
+20
-7
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/network/httpurlconnection/interceptor/HttpResponse.java
...t/network/httpurlconnection/interceptor/HttpResponse.java
+31
-11
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/network/httpurlconnection/proxy/HttpUrlConnectionProxy.java
...twork/httpurlconnection/proxy/HttpUrlConnectionProxy.java
+6
-7
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/network/httpurlconnection/proxy/HttpsUrlConnectionProxy.java
...work/httpurlconnection/proxy/HttpsUrlConnectionProxy.java
+4
-6
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/network/utils/StreamUtil.java
...didichuxing/doraemonkit/kit/network/utils/StreamUtil.java
+31
-28
未找到文件。
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/network/httpurlconnection/HttpMonitorInterceptor.java
浏览文件 @
52a34174
package
com.didichuxing.doraemonkit.kit.network.httpurlconnection
;
import
android.support.annotation.NonNull
;
import
android.util.Log
;
import
android.util.Pair
;
import
com.didichuxing.doraemonkit.kit.network.NetworkManager
;
import
com.didichuxing.doraemonkit.kit.network.bean.NetworkRecord
;
import
com.didichuxing.doraemonkit.kit.network.core.DefaultResponseHandler
;
import
com.didichuxing.doraemonkit.kit.network.core.NetworkInterpreter
;
import
com.didichuxing.doraemonkit.kit.network.httpurlconnection.inspector.URLConnectionInspectorRequest
;
import
com.didichuxing.doraemonkit.kit.network.httpurlconnection.inspector.URLConnectionInspectorResponse
;
import
com.didichuxing.doraemonkit.kit.network.httpurlconnection.interceptor.DKInterceptor
;
import
com.didichuxing.doraemonkit.kit.network.httpurlconnection.interceptor.HttpRequest
;
import
com.didichuxing.doraemonkit.kit.network.httpurlconnection.interceptor.HttpRequestChain
;
...
...
@@ -21,55 +22,51 @@ import com.didichuxing.doraemonkit.kit.network.utils.StreamUtil;
import
java.io.IOException
;
import
java.io.InputStream
;
import
java.net.HttpURLConnection
;
import
java.util.ArrayList
;
/**
* @desc: 监听HttpUrlConnection数据的拦截器
*/
public
class
HttpMonitorInterceptor
implements
DKInterceptor
<
HttpRequest
,
HttpResponse
>
{
private
static
final
String
TAG
=
"HeaderParseInterceptor"
;
private
final
NetworkInterpreter
mInterpreter
;
private
final
int
mId
;
public
HttpMonitorInterceptor
()
{
mInterpreter
=
NetworkInterpreter
.
get
();
mId
=
NetworkInterpreter
.
get
().
nextRequestId
();
}
@Override
public
void
intercept
(
@NonNull
HttpRequestChain
chain
,
@NonNull
HttpRequest
request
)
throws
IOException
{
int
requestId
=
request
.
getId
()
;
int
requestId
=
mId
;
if
(
NetworkManager
.
get
().
getRecord
(
requestId
)
!=
null
)
{
chain
.
process
(
request
);
return
;
}
HttpURLConnection
connection
=
request
.
getURLConnection
();
ArrayList
<
Pair
<
String
,
String
>>
header
;
// connect参数不知道什么会被置为true,以防崩溃,这里直接try-catch住
try
{
header
=
StreamUtil
.
convertHeaders
(
connection
.
getRequestProperties
());
}
catch
(
Exception
e
)
{
Log
.
e
(
TAG
,
"get head exception"
,
e
);
header
=
new
ArrayList
<>();
}
ArrayList
<
Pair
<
String
,
String
>>
header
=
StreamUtil
.
convertHeaders
(
request
.
getHeaders
());
URLConnectionInspectorRequest
inspectorRequest
=
new
URLConnectionInspectorRequest
(
requestId
,
header
,
connection
);
request
.
getUrl
(),
request
.
getMethod
());
mInterpreter
.
createRecord
(
requestId
,
inspectorRequest
);
chain
.
process
(
request
);
}
@Override
public
void
intercept
(
@NonNull
HttpResponseChain
chain
,
@NonNull
HttpResponse
response
)
throws
IOException
{
int
id
=
response
.
getId
()
;
int
id
=
mId
;
NetworkRecord
record
=
NetworkManager
.
get
().
getRecord
(
id
);
if
(
record
==
null
)
{
chain
.
process
(
response
);
return
;
}
ArrayList
<
Pair
<
String
,
String
>>
header
=
StreamUtil
.
convertHeaders
(
response
.
getHeaders
());
URLConnectionInspectorResponse
urlConnectionInspectorResponse
=
new
URLConnectionInspectorResponse
(
response
.
getId
(),
response
.
getURLConnection
(),
mId
,
header
,
response
.
getUrl
(),
response
.
getStatusCode
());
mInterpreter
.
fetchResponseInfo
(
record
,
urlConnectionInspectorResponse
);
chain
.
process
(
response
);
...
...
@@ -77,21 +74,27 @@ public class HttpMonitorInterceptor implements DKInterceptor<HttpRequest, HttpRe
@Override
public
void
intercept
(
@NonNull
HttpRequestStreamChain
chain
,
@NonNull
HttpRequest
request
)
throws
IOException
{
OutputStreamProxy
outputStream
=
new
HttpOutputStreamProxy
(
request
.
getOutputStream
(),
request
.
getId
(),
mInterpreter
);
int
id
=
mId
;
NetworkRecord
record
=
NetworkManager
.
get
().
getRecord
(
id
);
if
(
record
==
null
)
{
chain
.
process
(
request
);
return
;
}
OutputStreamProxy
outputStream
=
new
HttpOutputStreamProxy
(
request
.
getOutputStream
(),
mId
,
mInterpreter
);
request
.
setOutputStream
(
outputStream
);
chain
.
process
(
request
);
}
@Override
public
void
intercept
(
@NonNull
HttpResponseStreamChain
chain
,
@NonNull
HttpResponse
response
)
throws
IOException
{
int
id
=
response
.
getId
()
;
int
id
=
mId
;
NetworkRecord
record
=
NetworkManager
.
get
().
getRecord
(
id
);
if
(
record
==
null
)
{
chain
.
process
(
response
);
return
;
}
HttpURLConnection
connection
=
response
.
getURLConnection
();
InputStream
responseStream
=
mInterpreter
.
interpretResponseStream
(
connection
.
getHeaderField
(
"Content-Type"
),
response
.
getHeaderField
(
"Content-Type"
),
response
.
getInputStream
(),
new
DefaultResponseHandler
(
mInterpreter
,
id
,
record
));
response
.
setInputStream
(
responseStream
);
...
...
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/network/httpurlconnection/URLConnectionInspectorHeaders.java
→
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/network/httpurlconnection/
inspector/
URLConnectionInspectorHeaders.java
浏览文件 @
52a34174
...
...
@@ -7,7 +7,7 @@
* of patent rights can be found in the PATENTS file in the same directory.
*/
package
com.didichuxing.doraemonkit.kit.network.httpurlconnection
;
package
com.didichuxing.doraemonkit.kit.network.httpurlconnection
.inspector
;
import
android.util.Pair
;
...
...
@@ -16,35 +16,35 @@ import com.didichuxing.doraemonkit.kit.network.core.NetworkInterpreter;
import
java.util.ArrayList
;
public
class
URLConnectionInspectorHeaders
implements
NetworkInterpreter
.
InspectorHeaders
{
private
final
ArrayList
<
Pair
<
String
,
String
>>
mHeaders
;
public
URLConnectionInspectorHeaders
(
ArrayList
<
Pair
<
String
,
String
>>
headers
)
{
mHeaders
=
headers
;
}
@Override
public
int
headerCount
()
{
return
mHeaders
.
size
();
}
@Override
public
String
headerName
(
int
index
)
{
return
mHeaders
.
get
(
index
).
first
;
}
@Override
public
String
headerValue
(
int
index
)
{
return
mHeaders
.
get
(
index
).
second
;
}
@Override
public
String
firstHeaderValue
(
String
name
)
{
int
N
=
headerCount
();
for
(
int
i
=
0
;
i
<
N
;
i
++)
{
if
(
name
.
equalsIgnoreCase
(
headerName
(
i
)))
{
return
headerValue
(
i
);
}
private
final
ArrayList
<
Pair
<
String
,
String
>>
mHeaders
;
public
URLConnectionInspectorHeaders
(
ArrayList
<
Pair
<
String
,
String
>>
headers
)
{
mHeaders
=
headers
;
}
@Override
public
int
headerCount
()
{
return
mHeaders
.
size
();
}
@Override
public
String
headerName
(
int
index
)
{
return
mHeaders
.
get
(
index
).
first
;
}
@Override
public
String
headerValue
(
int
index
)
{
return
mHeaders
.
get
(
index
).
second
;
}
@Override
public
String
firstHeaderValue
(
String
name
)
{
int
N
=
headerCount
();
for
(
int
i
=
0
;
i
<
N
;
i
++)
{
if
(
name
.
equalsIgnoreCase
(
headerName
(
i
)))
{
return
headerValue
(
i
);
}
}
return
null
;
}
return
null
;
}
}
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/network/httpurlconnection/URLConnectionInspectorRequest.java
→
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/network/httpurlconnection/
inspector/
URLConnectionInspectorRequest.java
浏览文件 @
52a34174
...
...
@@ -7,7 +7,7 @@
* of patent rights can be found in the PATENTS file in the same directory.
*/
package
com.didichuxing.doraemonkit.kit.network.httpurlconnection
;
package
com.didichuxing.doraemonkit.kit.network.httpurlconnection
.inspector
;
import
android.support.annotation.Nullable
;
import
android.util.Pair
;
...
...
@@ -15,7 +15,6 @@ import android.util.Pair;
import
com.didichuxing.doraemonkit.kit.network.core.NetworkInterpreter
;
import
java.io.IOException
;
import
java.net.HttpURLConnection
;
import
java.util.ArrayList
;
...
...
@@ -29,11 +28,12 @@ public class URLConnectionInspectorRequest
public
URLConnectionInspectorRequest
(
int
requestId
,
ArrayList
<
Pair
<
String
,
String
>>
header
,
HttpURLConnection
configuredRequest
)
{
String
url
,
String
method
)
{
super
(
header
);
mRequestId
=
requestId
;
mUrl
=
configuredRequest
.
getURL
().
toString
()
;
mMethod
=
configuredRequest
.
getRequestMethod
()
;
mUrl
=
url
;
mMethod
=
method
;
}
...
...
@@ -55,6 +55,6 @@ public class URLConnectionInspectorRequest
@Nullable
@Override
public
byte
[]
body
()
throws
IOException
{
return
null
;
return
null
;
}
}
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/network/httpurlconnection/URLConnectionInspectorResponse.java
→
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/network/httpurlconnection/
inspector/
URLConnectionInspectorResponse.java
浏览文件 @
52a34174
...
...
@@ -7,13 +7,13 @@
* of patent rights can be found in the PATENTS file in the same directory.
*/
package
com.didichuxing.doraemonkit.kit.network.httpurlconnection
;
package
com.didichuxing.doraemonkit.kit.network.httpurlconnection.inspector
;
import
android.util.Pair
;
import
com.didichuxing.doraemonkit.kit.network.core.NetworkInterpreter
;
import
com.didichuxing.doraemonkit.kit.network.utils.StreamUtil
;
import
java.io.IOException
;
import
java.net.HttpURLConnection
;
import
java.util.ArrayList
;
public
class
URLConnectionInspectorResponse
extends
URLConnectionInspectorHeaders
...
...
@@ -22,10 +22,10 @@ public class URLConnectionInspectorResponse
private
final
String
mUrl
;
private
final
int
mStatusCode
;
public
URLConnectionInspectorResponse
(
int
requestId
,
HttpURLConnection
conn
,
int
statusCode
)
throws
IOException
{
super
(
StreamUtil
.
convertHeaders
(
conn
.
getHeaderFields
())
);
public
URLConnectionInspectorResponse
(
int
requestId
,
ArrayList
<
Pair
<
String
,
String
>>
header
,
String
url
,
int
statusCode
)
{
super
(
header
);
mRequestId
=
requestId
;
mUrl
=
conn
.
getURL
().
toString
()
;
mUrl
=
url
;
mStatusCode
=
statusCode
;
}
...
...
@@ -43,5 +43,4 @@ public class URLConnectionInspectorResponse
public
int
statusCode
()
{
return
mStatusCode
;
}
}
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/network/httpurlconnection/interceptor/HttpRequest.java
浏览文件 @
52a34174
package
com.didichuxing.doraemonkit.kit.network.httpurlconnection.interceptor
;
import
android.util.Log
;
import
java.io.OutputStream
;
import
java.net.HttpURLConnection
;
import
java.util.List
;
import
java.util.Map
;
/**
* @date: 2019/3/12
* @desc: 请求结构体
*/
public
class
HttpRequest
{
private
final
int
mId
;
private
static
final
String
TAG
=
"HttpRequest"
;
private
final
HttpURLConnection
mURLConnection
;
private
OutputStream
mOutputStream
;
public
HttpRequest
(
int
id
,
HttpURLConnection
urlConnection
)
{
public
HttpRequest
(
HttpURLConnection
urlConnection
)
{
mURLConnection
=
urlConnection
;
mId
=
id
;
}
public
HttpURLConnection
getURLConnection
()
{
return
mURLConnection
;
public
String
getUrl
()
{
return
mURLConnection
.
getURL
().
toString
()
;
}
public
int
getId
()
{
return
m
Id
;
public
String
getMethod
()
{
return
m
URLConnection
.
getRequestMethod
()
;
}
public
OutputStream
getOutputStream
()
{
return
mOutputStream
;
}
public
Map
<
String
,
List
<
String
>>
getHeaders
()
{
// connect参数不知道什么会被置为true,以防崩溃,这里直接try-catch住
try
{
return
mURLConnection
.
getRequestProperties
();
}
catch
(
Exception
e
)
{
Log
.
d
(
TAG
,
"get head exception"
,
e
);
return
null
;
}
}
public
void
setOutputStream
(
OutputStream
outputStream
)
{
mOutputStream
=
outputStream
;
}
...
...
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/network/httpurlconnection/interceptor/HttpResponse.java
浏览文件 @
52a34174
package
com.didichuxing.doraemonkit.kit.network.httpurlconnection.interceptor
;
import
android.util.Log
;
import
java.io.InputStream
;
import
java.net.HttpURLConnection
;
import
java.util.List
;
import
java.util.Map
;
/**
* @date: 2019/3/12
* @desc: 响应体
*/
public
class
HttpResponse
{
private
final
int
mId
;
private
final
String
TAG
=
"HttpResponse"
;
private
final
HttpURLConnection
mURLConnection
;
private
int
mStatusCode
;
private
InputStream
mInputStream
;
public
HttpResponse
(
int
id
,
HttpURLConnection
urlConnection
)
{
public
HttpResponse
(
HttpURLConnection
urlConnection
)
{
mURLConnection
=
urlConnection
;
mId
=
id
;
}
public
HttpURLConnection
getURLConnection
()
{
return
mURLConnection
;
}
public
int
getId
()
{
return
mId
;
}
public
int
getStatusCode
()
{
...
...
@@ -41,4 +36,29 @@ public class HttpResponse {
public
void
setInputStream
(
InputStream
inputStream
)
{
mInputStream
=
inputStream
;
}
public
String
getUrl
()
{
return
mURLConnection
.
getURL
().
toString
();
}
public
Map
<
String
,
List
<
String
>>
getHeaders
()
{
try
{
return
mURLConnection
.
getHeaderFields
();
}
catch
(
Exception
e
)
{
Log
.
d
(
TAG
,
"get head exception"
,
e
);
return
null
;
}
}
public
String
getHeaderField
(
String
key
)
{
Map
<
String
,
List
<
String
>>
map
=
getHeaders
();
if
(
map
==
null
)
{
return
null
;
}
List
<
String
>
fields
=
map
.
get
(
key
);
if
(
fields
==
null
||
fields
.
size
()
==
0
)
{
return
null
;
}
return
fields
.
get
(
fields
.
size
()
-
1
);
}
}
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/network/httpurlconnection/HttpUrlConnectionProxy.java
→
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/network/httpurlconnection/
proxy/
HttpUrlConnectionProxy.java
浏览文件 @
52a34174
package
com.didichuxing.doraemonkit.kit.network.httpurlconnection
;
package
com.didichuxing.doraemonkit.kit.network.httpurlconnection
.proxy
;
import
android.util.Log
;
import
com.didichuxing.doraemonkit.kit.network.
core.NetworkInterprete
r
;
import
com.didichuxing.doraemonkit.kit.network.
httpurlconnection.HttpMonitorIntercepto
r
;
import
com.didichuxing.doraemonkit.kit.network.httpurlconnection.interceptor.DKInterceptor
;
import
com.didichuxing.doraemonkit.kit.network.httpurlconnection.interceptor.HttpChainFacade
;
import
com.didichuxing.doraemonkit.kit.network.httpurlconnection.interceptor.HttpRequest
;
...
...
@@ -37,11 +37,10 @@ public class HttpUrlConnectionProxy extends HttpURLConnection {
mSourceConnection
=
con
;
mInterceptors
.
add
(
new
HttpMonitorInterceptor
());
// mInterceptors.add(new LargePictureInterceptor());
NetworkInterpreter
mInterpreter
=
NetworkInterpreter
.
get
();
int
requestId
=
mInterpreter
.
nextRequestId
();
mHttpRequest
=
new
HttpRequest
(
requestId
,
con
);
mHttpResponse
=
new
HttpResponse
(
requestId
,
con
);
mHttpRequest
=
new
HttpRequest
(
con
);
mHttpResponse
=
new
HttpResponse
(
con
);
mHttpChainFacade
=
new
HttpChainFacade
(
mInterceptors
);
}
...
...
@@ -229,7 +228,7 @@ public class HttpUrlConnectionProxy extends HttpURLConnection {
@SuppressWarnings
({
"unchecked"
,
"rawtypes"
})
@Override
public
Map
<
String
,
List
<
String
>>
getHeaderFields
()
{
return
mSourceConnection
.
get
HeaderField
s
();
return
mSourceConnection
.
get
RequestPropertie
s
();
}
@Override
...
...
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/network/httpurlconnection/HttpsUrlConnectionProxy.java
→
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/network/httpurlconnection/
proxy/
HttpsUrlConnectionProxy.java
浏览文件 @
52a34174
package
com.didichuxing.doraemonkit.kit.network.httpurlconnection
;
package
com.didichuxing.doraemonkit.kit.network.httpurlconnection
.proxy
;
import
android.util.Log
;
import
com.didichuxing.doraemonkit.kit.network.
core.NetworkInterprete
r
;
import
com.didichuxing.doraemonkit.kit.network.
httpurlconnection.HttpMonitorIntercepto
r
;
import
com.didichuxing.doraemonkit.kit.network.httpurlconnection.interceptor.DKInterceptor
;
import
com.didichuxing.doraemonkit.kit.network.httpurlconnection.interceptor.HttpChainFacade
;
import
com.didichuxing.doraemonkit.kit.network.httpurlconnection.interceptor.HttpRequest
;
...
...
@@ -41,10 +41,8 @@ public class HttpsUrlConnectionProxy extends HttpsURLConnection {
mInterceptors
.
add
(
new
HttpMonitorInterceptor
());
NetworkInterpreter
mInterpreter
=
NetworkInterpreter
.
get
();
int
requestId
=
mInterpreter
.
nextRequestId
();
mHttpRequest
=
new
HttpRequest
(
requestId
,
con
);
mHttpResponse
=
new
HttpResponse
(
requestId
,
con
);
mHttpRequest
=
new
HttpRequest
(
con
);
mHttpResponse
=
new
HttpResponse
(
con
);
mHttpChainFacade
=
new
HttpChainFacade
(
mInterceptors
);
}
...
...
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/network/utils/StreamUtil.java
浏览文件 @
52a34174
...
...
@@ -21,39 +21,42 @@ import java.util.Map;
public
class
StreamUtil
{
public
static
void
copy
(
InputStream
input
,
OutputStream
output
,
byte
[]
buffer
)
throws
IOException
{
int
n
;
while
((
n
=
input
.
read
(
buffer
))
!=
-
1
)
{
output
.
write
(
buffer
,
0
,
n
);
public
static
void
copy
(
InputStream
input
,
OutputStream
output
,
byte
[]
buffer
)
throws
IOException
{
int
n
;
while
((
n
=
input
.
read
(
buffer
))
!=
-
1
)
{
output
.
write
(
buffer
,
0
,
n
);
}
}
}
public
static
void
close
(
Closeable
closeable
,
boolean
hideException
)
throws
IOException
{
if
(
closeable
!=
null
)
{
if
(
hideException
)
{
try
{
closeable
.
close
();
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
public
static
void
close
(
Closeable
closeable
,
boolean
hideException
)
throws
IOException
{
if
(
closeable
!=
null
)
{
if
(
hideException
)
{
try
{
closeable
.
close
();
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
}
else
{
closeable
.
close
();
}
}
}
else
{
closeable
.
close
();
}
}
}
public
static
ArrayList
<
Pair
<
String
,
String
>>
convertHeaders
(
Map
<
String
,
List
<
String
>>
map
)
{
ArrayList
<
Pair
<
String
,
String
>>
array
=
new
ArrayList
<
Pair
<
String
,
String
>>();
for
(
Map
.
Entry
<
String
,
List
<
String
>>
mapEntry
:
map
.
entrySet
())
{
for
(
String
mapEntryValue
:
mapEntry
.
getValue
())
{
// HttpURLConnection puts a weird null entry in the header map that corresponds to
// the HTTP response line (for instance, HTTP/1.1 200 OK). Ignore that weirdness...
if
(
mapEntry
.
getKey
()
!=
null
)
{
array
.
add
(
Pair
.
create
(
mapEntry
.
getKey
(),
mapEntryValue
));
public
static
ArrayList
<
Pair
<
String
,
String
>>
convertHeaders
(
Map
<
String
,
List
<
String
>>
map
)
{
ArrayList
<
Pair
<
String
,
String
>>
array
=
new
ArrayList
<
Pair
<
String
,
String
>>();
if
(
map
==
null
)
{
return
array
;
}
for
(
Map
.
Entry
<
String
,
List
<
String
>>
mapEntry
:
map
.
entrySet
())
{
for
(
String
mapEntryValue
:
mapEntry
.
getValue
())
{
// HttpURLConnection puts a weird null entry in the header map that corresponds to
// the HTTP response line (for instance, HTTP/1.1 200 OK). Ignore that weirdness...
if
(
mapEntry
.
getKey
()
!=
null
)
{
array
.
add
(
Pair
.
create
(
mapEntry
.
getKey
(),
mapEntryValue
));
}
}
}
}
return
array
;
}
return
array
;
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录