Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
DiDi
DoraemonKit
提交
99b9c163
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,发现更多精彩内容 >>
提交
99b9c163
编写于
7月 11, 2019
作者:
猴子请来的救兵_
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
模拟弱网支持设置0K表示不限速;请求限速支持字节数组
上级
03f987aa
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
27 addition
and
14 deletion
+27
-14
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/weaknetwork/ByteCountBufferedSink.java
...ng/doraemonkit/kit/weaknetwork/ByteCountBufferedSink.java
+17
-6
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/weaknetwork/WeakNetworkManager.java
...uxing/doraemonkit/kit/weaknetwork/WeakNetworkManager.java
+10
-8
未找到文件。
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/weaknetwork/ByteCountBufferedSink.java
浏览文件 @
99b9c163
...
...
@@ -41,9 +41,25 @@ public class ByteCountBufferedSink implements BufferedSink {
return
totalBytesRead
;
}
@Override
public
BufferedSink
write
(
byte
[]
source
,
int
offset
,
int
byteCount
)
throws
IOException
{
if
(!
isOpen
())
throw
new
IllegalStateException
(
"closed"
);
//计算出要写入的次数
long
count
=
(
long
)
Math
.
ceil
((
double
)
source
.
length
/
mByteCount
);
for
(
int
i
=
0
;
i
<
count
;
i
++)
{
//让每次写入的字节数精确到mByteCount 分多次写入
long
newOffset
=
i
*
mByteCount
;
long
writeByteCount
=
Math
.
min
(
mByteCount
,
source
.
length
-
newOffset
);
buffer
().
write
(
source
,
(
int
)
newOffset
,
(
int
)
writeByteCount
);
emitCompleteSegments
();
}
return
this
;
}
@Override
public
BufferedSink
emitCompleteSegments
()
throws
IOException
{
mOriginalSink
.
write
(
buffer
(),
mByteCount
);
final
Buffer
buffer
=
buffer
();
mOriginalSink
.
write
(
buffer
,
buffer
.
size
());
return
this
;
}
...
...
@@ -62,11 +78,6 @@ public class ByteCountBufferedSink implements BufferedSink {
return
mDelegate
.
write
(
source
);
}
@Override
public
BufferedSink
write
(
byte
[]
source
,
int
offset
,
int
byteCount
)
throws
IOException
{
return
mDelegate
.
write
(
source
,
offset
,
byteCount
);
}
@Override
public
BufferedSink
write
(
Source
source
,
long
byteCount
)
throws
IOException
{
return
mDelegate
.
write
(
source
,
byteCount
);
...
...
Android/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/weaknetwork/WeakNetworkManager.java
浏览文件 @
99b9c163
...
...
@@ -11,6 +11,7 @@ import okhttp3.Interceptor;
import
okhttp3.Request
;
import
okhttp3.RequestBody
;
import
okhttp3.Response
;
import
okhttp3.ResponseBody
;
/**
* @author denghaha
...
...
@@ -53,12 +54,8 @@ public class WeakNetworkManager {
if
(
timeOutMillis
>
0
)
{
mTimeOutMillis
=
timeOutMillis
;
}
if
(
requestSpeed
>
0
)
{
mRequestSpeed
=
requestSpeed
;
}
if
(
responseSpeed
>
0
)
{
mResponseSpeed
=
responseSpeed
;
}
mRequestSpeed
=
requestSpeed
;
mResponseSpeed
=
responseSpeed
;
}
public
void
setType
(
int
type
)
{
...
...
@@ -106,9 +103,14 @@ public class WeakNetworkManager {
Request
request
=
chain
.
request
();
final
RequestBody
body
=
request
.
body
();
if
(
body
!=
null
)
{
request
=
request
.
newBuilder
().
method
(
request
.
method
(),
new
SpeedLimitRequestBody
(
mRequestSpeed
,
body
)).
build
();
//大于0使用限速的body 否则使用原始body
final
RequestBody
requestBody
=
mRequestSpeed
>
0
?
new
SpeedLimitRequestBody
(
mRequestSpeed
,
body
)
:
body
;
request
=
request
.
newBuilder
().
method
(
request
.
method
(),
requestBody
).
build
();
}
final
Response
response
=
chain
.
proceed
(
request
);
return
response
.
newBuilder
().
body
(
new
SpeedLimitResponseBody
(
mResponseSpeed
,
response
.
body
())).
build
();
//大于0使用限速的body 否则使用原始body
final
ResponseBody
responseBody
=
response
.
body
();
final
ResponseBody
newResponseBody
=
mResponseSpeed
>
0
?
new
SpeedLimitResponseBody
(
mResponseSpeed
,
responseBody
)
:
responseBody
;
return
response
.
newBuilder
().
body
(
newResponseBody
).
build
();
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录