Gle*_*.nz 5 android bufferedoutputstream okhttp mimecraft
我正在尝试发布图像的上传进度,使用okhttp作为我的客户端和mimecraft来上传它们以打包多部分文件。
当数据被写入套接字时,我添加了日志以写入字节数(如果我能正确告诉的话,以4kb的块为单位),然后上传。
问题是,虽然每次写入数据块时我都会在输出流上调用flush,但直到将〜800kb写入输出流后,似乎都没有上载。一旦达到该点,它似乎会上传〜100kb,然后该应用再向输出流写入另外100kb(如释放的空间,可以写更多一点),然后继续。
这样的结果是(通过1.2mb文件)前800kb几乎立即被写入/报告,然后开始上载(通过charles网络软件跟踪),然后在下一个800kb中开始读取/写入/上载100kb几秒钟后,一旦我将最后一个字节写入输出流,应用程序就会报告已写入100%的上传内容。尽管这是正确的,但由于网络客户端仍在上传仍在网络缓冲区中的最后800kb,它又在那儿坐了5-10秒,然后才完成请求。
有没有人有这种经验,或者知道这是否是okhttp中的常见问题?
干杯
编辑:如果我上传的文件少于800kb,我测试了250kb和500kb,它们在上传之前立即被100%写入流中,但是3mb的图像仍将上传800kb,然后以大约100kb的块数滴答,并且每次写入一些文件时,写入循环都会坐在那里,另外写入100kb。
归档时间: |
|
查看次数: |
1195 次 |
最近记录: |