有人在stm32上实现gzipios gzip 解压缩缩吗

6被浏览1645分享邀请回答stuk.github.io/jszip/客户端js进行压缩是个很昂贵的操作,尤其当文件较大时,其实是得不偿失的,不如让用户自己压缩,或者上传后再对文件进行处理。当然对于图片等具体的文件格式,倒是可以读取后用canvas做一些压缩处理再上传。2添加评论分享收藏感谢收起Android获取网络数据进行GZIP解压 - 放纵的卡尔 - 博客园
随笔 - 35, 文章 - 0, 评论 - 1, 引用 - 0
说明:现在很多网站都会在回传数据的时候进行GZIP压缩,我们可以在请求头中申明支持GZIP压缩。可以减轻网络传输压力,Xutils中已经实现。
下面是一个DEMO,便于理解。
private void initGzip() {
findViewById(R.id.btn1).setOnClickListener(new OnClickListener() {
public void onClick(View v) {
new Thread(new Runnable() {
public void run() {
boolean isGzip = false;
// 初始化httpClient对象
DefaultHttpClient httpClient = new DefaultHttpClient();
// 初始化httpGe对象
HttpGet get = new HttpGet("/city");
// 1.发送请求头:`Accept-Encoding:gzip`
get.addHeader("Accept-Encoding", "gzip");
// HttpGet get = new HttpGet("http://httpbin.org/gzip");
// 发起请求
HttpResponse response = httpClient.execute(get);
if (response.getStatusLine().getStatusCode() == 200) {
// 2. 取的响应头`Content-Encoding`,判断是否包含Content-Encoding:gzip
Header[] headers = response.getHeaders("Content-Encoding");
for (Header header : headers) {
String value = header.getValue();
if (value.equals("gzip")) {
isGzip = true;
// 3.相应的解压
HttpEntity entity = response.getEntity();
if (isGzip) {// gzip解压
InputStream in = entity.getContent();
GZIPInputStream gzipIn = new GZIPInputStream(in);
// inputStream--&string
result = convertStreamToString(gzipIn);
} else {// 标准解压
// 打印响应结果
result = EntityUtils.toString(entity);
System.out.println("result:" + result);
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}).start();
public static String convertStreamToString(InputStream is) throws IOException {
if (is != null) {
StringBuilder sb = new StringBuilder();
BufferedReader reader = new BufferedReader(new InputStreamReader(is, "utf-8"));
// BufferedReader reader = new BufferedReader(new InputStreamReader(is));
while ((line = reader.readLine()) != null) {
// sb.append(line);
sb.append(line).append("\n");
} finally {
is.close();
return sb.toString();
return "";
} catch (Exception e) {
e.printStackTrace();
return "";基于pako.js实现gzip的压缩和解压功能示例
作者:_iorilan
字体:[ ] 类型:转载 时间:
这篇文章主要介绍了基于pako.js实现gzip的压缩和解压功能,结合具体实例形式分析了pako.js实现字符串压缩与解压缩的相关操作技巧,需要的朋友可以参考下
本文实例讲述了基于pako.js实现gzip的压缩和解压功能。分享给大家供大家参考,具体如下:
&!DOCTYPE html&
&html lang="en"&
&meta charset="UTF-8"&
&title&pako.js实现gzip的压缩和解压&/title&
&script type="text/javascript" src="pako.js"&&/script&
var b64Data
= 'H4sIAAAAAAAAAJ3UMQ7CMAwF0KugP2ewEzdpcxXUAbWAOiHUMqCqdyeVQAobfGXIYL8hP5ZXnEdkeNEk6vUgXTbLonC4zMjHFY/5Wm511ekdTsOCLKVp2rlIKOA2jTuBot/cr7BhobEwsbAloY8kDGyqoQ5H/oHsdwQ21cCmaspCz0L2jcYOgLHhNGw4TT1yVmBpuS9PZHWY35siqnxvimEvpE9FY4peQhfbhO0FDnuFqWAEAAA=';
var ticketData = '{"ed":":44:01","fs":[{"usg":[1,1,1,1,1,1,1],"act":0,"fid":"003","oids":["1"]},{"usg":[1,1,1,1,1,1,1],"act":0,"fid":"005","oids":["1"]},{"usg":[1,1,1,1,1,1,1],"act":0,"fid":"004","oids":["1"]},{"usg":[1,1,1,1,1,1,1],"act":0,"fid":"007","oids":["1"]},{"usg":[1,1,1,1,1,1,1],"act":0,"fid":"008","oids":["1"]},{"usg":[1,1,1,1,1,1,1],"act":0,"fid":"026","oids":["1"]},{"usg":[1,1,1,1,1,1,1],"act":0,"fid":"033","oids":["1"]},{"usg":[1,1,1,1,1,1,1],"act":0,"fid":"034","oids":["0"]},{"usg":[1,1,1,1,1,1,1],"act":0,"fid":"035","oids":["1"]},{"usg":[1,1,1,1,1,1,1],"act":0,"fid":"037","oids":["1"]},{"usg":[1,1,1,1,1,1,1],"act":0,"fid":"038","oids":["1"]},{"usg":[1,1,1,1,1,1,1],"act":0,"fid":"041","oids":["1"]},{"usg":[1,1,1,1,1,1,1],"act":0,"fid":"042","oids":["1"]},{"usg":[1,1,1,1,1,1,1],"act":0,"fid":"047","oids":["1"]},{"usg":[1,1,1,1,1,1,1],"act":0,"fid":"046","oids":["1"]},{"usg":[1,1,1,1,1,1,1],"act":0,"fid":"048","oids":["1"]},{"usg":[1,1,1,1,1,1,1],"act":0,"fid":"051","oids":["1"]},{"usg":[1,1,1,1,1,1,1],"act":0,"fid":"053","oids":["4"]}],"qty":1,"sd":":44:01","cd":""}';
// Output to console
var s = unzip(b64Data);
console.log("unzipped:");
console.log(s);
var data = zip(ticketData);
console.log("zipped:");
console.log(data);
function unzip(b64Data){
var strData
= atob(b64Data);
// Convert binary string to character-number array
var charData
= strData.split('').map(function(x){return x.charCodeAt(0);});
// Turn number array into byte-array
var binData
= new Uint8Array(charData);
// // unzip
= pako.inflate(binData);
// Convert gunzipped byteArray back to ascii string:
= String.fromCharCode.apply(null, new Uint16Array(data));
return strD
function zip(str){
var binaryString = pako.gzip(str, { to: 'string' });
return btoa(binaryString);
运行效果图如下:
poko.js可至Github下载:/nodeca/pako
或者点击此处。
更多关于JavaScript相关内容可查看本站专题:《》、《》、《》、《》、《》及《》
希望本文所述对大家JavaScript程序设计有所帮助。
您可能感兴趣的文章:
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具本帖子已过去太久远了,不再提供回复功能。

我要回帖

更多关于 gzip 解压缩 的文章

 

随机推荐