Skip to content

Commit 8d96b2d

Browse files
author
YangSen-qn
committed
gzip report data
1 parent 21960a3 commit 8d96b2d

File tree

4 files changed

+134
-5
lines changed

4 files changed

+134
-5
lines changed

library/library.iml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -31,16 +31,16 @@
3131
<output-test url="file://$MODULE_DIR$/build/intermediates/javac/debugUnitTest/classes" />
3232
<exclude-output />
3333
<content url="file://$MODULE_DIR$">
34-
<sourceFolder url="file://$MODULE_DIR$/build/generated/renderscript_source_output_dir/debug/compileDebugRenderscript/out" isTestSource="false" generated="true" />
35-
<sourceFolder url="file://$MODULE_DIR$/build/generated/source/buildConfig/debug" isTestSource="false" generated="true" />
36-
<sourceFolder url="file://$MODULE_DIR$/build/generated/aidl_source_output_dir/debug/compileDebugAidl/out" isTestSource="false" generated="true" />
3734
<sourceFolder url="file://$MODULE_DIR$/build/generated/ap_generated_sources/debug/out" isTestSource="false" generated="true" />
35+
<sourceFolder url="file://$MODULE_DIR$/build/generated/aidl_source_output_dir/debug/compileDebugAidl/out" isTestSource="false" generated="true" />
36+
<sourceFolder url="file://$MODULE_DIR$/build/generated/source/buildConfig/debug" isTestSource="false" generated="true" />
37+
<sourceFolder url="file://$MODULE_DIR$/build/generated/renderscript_source_output_dir/debug/compileDebugRenderscript/out" isTestSource="false" generated="true" />
3838
<sourceFolder url="file://$MODULE_DIR$/build/generated/res/rs/debug" type="java-resource" generated="true" />
3939
<sourceFolder url="file://$MODULE_DIR$/build/generated/res/resValues/debug" type="java-resource" generated="true" />
4040
<sourceFolder url="file://$MODULE_DIR$/build/generated/ap_generated_sources/debugAndroidTest/out" isTestSource="true" generated="true" />
4141
<sourceFolder url="file://$MODULE_DIR$/build/generated/aidl_source_output_dir/debugAndroidTest/compileDebugAndroidTestAidl/out" isTestSource="true" generated="true" />
42-
<sourceFolder url="file://$MODULE_DIR$/build/generated/renderscript_source_output_dir/debugAndroidTest/compileDebugAndroidTestRenderscript/out" isTestSource="true" generated="true" />
4342
<sourceFolder url="file://$MODULE_DIR$/build/generated/source/buildConfig/androidTest/debug" isTestSource="true" generated="true" />
43+
<sourceFolder url="file://$MODULE_DIR$/build/generated/renderscript_source_output_dir/debugAndroidTest/compileDebugAndroidTestRenderscript/out" isTestSource="true" generated="true" />
4444
<sourceFolder url="file://$MODULE_DIR$/build/generated/res/rs/androidTest/debug" type="java-test-resource" generated="true" />
4545
<sourceFolder url="file://$MODULE_DIR$/build/generated/res/resValues/androidTest/debug" type="java-test-resource" generated="true" />
4646
<sourceFolder url="file://$MODULE_DIR$/build/generated/ap_generated_sources/debugUnitTest/out" isTestSource="true" generated="true" />
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
package com.qiniu.android;
2+
3+
import com.qiniu.android.utils.GZipUtil;
4+
import java.util.Arrays;
5+
6+
public class GZipTest extends BaseTest {
7+
8+
public void testGZipString(){
9+
10+
String string = null;
11+
12+
byte[] gzip = GZipUtil.gZip(string);
13+
assertTrue(gzip == null);
14+
15+
string = "";
16+
gzip = GZipUtil.gZip(string);
17+
assertTrue(Arrays.equals(gzip, string.getBytes()));
18+
19+
20+
string = "ABCDEFG";
21+
gzip = GZipUtil.gZip(string);
22+
23+
byte[] gUnzip = GZipUtil.gUnzip(gzip);
24+
String stringGUnzip = new String(gUnzip);
25+
26+
assertTrue(string.equals(stringGUnzip));
27+
}
28+
29+
public void testGZipByte(){
30+
31+
byte[] bytes = null;
32+
33+
byte[] gzip = GZipUtil.gZip(bytes);
34+
assertTrue(gzip == null);
35+
36+
bytes = new byte[0];
37+
gzip = GZipUtil.gZip(bytes);
38+
assertTrue(Arrays.equals(bytes, gzip));
39+
40+
41+
String string = "ABCDEFG";
42+
bytes = string.getBytes();
43+
gzip = GZipUtil.gZip(bytes);
44+
45+
byte[] gUnzip = GZipUtil.gUnzip(gzip);
46+
String stringGUnzip = new String(gUnzip);
47+
48+
assertTrue(string.equals(stringGUnzip));
49+
}
50+
}

library/src/main/java/com/qiniu/android/http/request/RequestTransaction.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
import com.qiniu.android.storage.UpToken;
1212
import com.qiniu.android.storage.UploadOptions;
1313
import com.qiniu.android.utils.Crc32;
14+
import com.qiniu.android.utils.GZipUtil;
1415
import com.qiniu.android.utils.LogUtil;
1516
import com.qiniu.android.utils.StringUtils;
1617
import com.qiniu.android.utils.UrlSafeBase64;
@@ -341,6 +342,7 @@ public void reportLog(byte[] logData,
341342
header.put("Authorization", token);
342343
header.put("Content-Type", "text/plain");
343344
header.put("User-Agent", userAgent);
345+
header.put("Content-Encoding", "gzip");
344346

345347
if (logClientId != null){
346348
header.put("X-Log-Client-Id", logClientId);
@@ -352,7 +354,7 @@ public boolean shouldRetry(ResponseInfo responseInfo, JSONObject response) {
352354
return !responseInfo.isOK();
353355
}
354356
};
355-
regionRequest.post("/log/4", isAsync, logData, header, shouldRetryHandler, null, new HttpRegionRequest.RequestCompleteHandler() {
357+
regionRequest.post("/log/4", isAsync, GZipUtil.gZip(logData), header, shouldRetryHandler, null, new HttpRegionRequest.RequestCompleteHandler() {
356358
@Override
357359
public void complete(ResponseInfo responseInfo, UploadRegionRequestMetrics requestMetrics, JSONObject response) {
358360
completeHandler.complete(responseInfo, requestMetrics, response);
Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
package com.qiniu.android.utils;
2+
3+
import java.io.ByteArrayInputStream;
4+
import java.io.ByteArrayOutputStream;
5+
import java.io.File;
6+
import java.io.IOException;
7+
import java.io.RandomAccessFile;
8+
import java.util.zip.GZIPInputStream;
9+
import java.util.zip.GZIPOutputStream;
10+
11+
public class GZipUtil {
12+
13+
public static byte[] gZip(String string){
14+
if (string == null){
15+
return null;
16+
}
17+
return gZip(string.getBytes());
18+
}
19+
20+
public static byte[] gZip(byte[] bytes){
21+
if (bytes == null){
22+
return null;
23+
}
24+
if (bytes.length == 0){
25+
return bytes;
26+
}
27+
28+
ByteArrayOutputStream out = new ByteArrayOutputStream();
29+
GZIPOutputStream gzip = null;
30+
try {
31+
gzip = new GZIPOutputStream(out);
32+
gzip.write(bytes);
33+
} catch (IOException e){
34+
} finally {
35+
if (gzip != null){
36+
try {
37+
gzip.close();
38+
} catch (IOException e){
39+
}
40+
}
41+
}
42+
43+
return out.toByteArray();
44+
}
45+
46+
public static byte[] gUnzip(byte[] bytes) {
47+
if (bytes == null){
48+
return null;
49+
}
50+
if (bytes.length == 0){
51+
return bytes;
52+
}
53+
54+
ByteArrayOutputStream out = new ByteArrayOutputStream();
55+
ByteArrayInputStream in = new ByteArrayInputStream(bytes);
56+
57+
GZIPInputStream gunzip = null;
58+
try {
59+
gunzip = new GZIPInputStream(in);
60+
byte[] buffer = new byte[256];
61+
int n;
62+
while ((n = gunzip.read(buffer)) >= 0) {
63+
out.write(buffer, 0, n);
64+
}
65+
} catch (IOException e) {
66+
} finally {
67+
if (gunzip != null) {
68+
try {
69+
gunzip.close();
70+
} catch (IOException e) {
71+
}
72+
}
73+
}
74+
75+
return out.toByteArray();
76+
}
77+
}

0 commit comments

Comments
 (0)