hujiulong / dgit

A simple CLI for downloading git repository files.
MIT License
40 stars 9 forks source link

fix: 解决 windows 中文 url 下载问题 #4

Closed wll8 closed 6 years ago

wll8 commented 6 years ago

发现原问题是由于以下原因导致: request 如何使用中文 url 请求的话会 statusCode 为 400 而不是 200 所以下载不成功, encodeURI 一下即可 。

以下代码供问题还原:

var request = require('request');
// request('https://raw.githubusercontent.com/wll8/batch/master/list/文件关联/文件关联.bat', function (error, response, body) { // 400
request('https://raw.githubusercontent.com/wll8/batch/master/list/%E6%96%87%E4%BB%B6%E5%85%B3%E8%81%94/%E6%96%87%E4%BB%B6%E5%85%B3%E8%81%94.bat', function (error, response, body) { // 200
    console.log('statusCode:', response.statusCode);
});

成功下载:

E:\dgit>dgit wll8/batch/readme.md /test/

  github:wll8/batch/readme.md  ref: master

√ readme.md

  Download complete.

  downloaded 1 files, totaling 740 B.

E:\dgit>dgit wll8/batch/list/文件关联/文件关联.bat /test/

  github:wll8/batch/list/文件关联/文件关联.bat  ref: master

√ list/文件关联/文件关联.bat

  Download complete.

  downloaded 1 files, totaling 2.63 KB.

E:\dgit>cd /test/ && dir
  驱动器 E 中的卷是 新加卷
  卷的序列号是 84E4-F52D

  E:\test 的目录

2018/02/01  01:38    <DIR>          .
2018/02/01  01:38    <DIR>          ..
2018/02/01  01:38               740 readme.md
2018/02/01  01:39             2,691 文件关联.bat
                2 个文件          3,431 字节
                2 个目录 37,958,569,984 可用字节