(澳门博彩导航) 下载文件的时候 ,文件名中包含 中括号, 导致下载失败!
澳门博彩导航网址
澳门博彩导航网址
当前位置 : 澳门博彩导航网址 > 澳门博彩导航

(澳门博彩导航) 下载文件的时候 ,文件名中包含 中括号, 导致下载失败!

1.使用Xutil 进行的文件下载
2.只要文件中有 中括号,就会下载失败,另起一个名字, 可以下载成功

爆出的异常为:

java.net.URISyntaxException: Illegal character in path at index 68...
at libcore.net.UriCodec.validateUriCodec.java:63
at java.net.URI.parseURIURI.java:402

异常详细如下:

08-16 10:06:50.183 31228-31228/ E/URIBuilder.<init>L:55: Illegal character in path at index 68: http://***cn:8099/sczh//upload/5f534d87a3e148048b275ea5858f27f9[202]再试一下.doc
                                                                              java.net.URISyntaxException: Illegal character in path at index 68: http://**h//upload/5f534d87a3e148048b275ea5858f27f9[202]再试一下.doc
                                                                                  at libcore.net.UriCodec.validateUriCodec.java:63
                                                                                  at java.net.URI.parseURIURI.java:402
                                                                                  at java.net.URI.<init>URI.java:204
                                                                                  at com.lidroid.xutils.http.client.util.URIBuilder.<init>URIBuilder.java:53
                                                                                  at com.lidroid.xutils.http.client.HttpRequest.setURIHttpRequest.java:156
                                                                                  at com.lidroid.xutils.http.client.HttpRequest.<init>HttpRequest.java:60
                                                                                  at com.lidroid.xutils.HttpUtils.downloadHttpUtils.java:297
                                                                                  at com.lidroid.xutils.HttpUtils.downloadHttpUtils.java:263
                                                                                  at com.fenghua.traffic.activity.GongGaoInfoActivity.onClickGongGaoInfoActivity.java:193
                                                                                  at android.view.View.performClickView.java:5200
                                                                                  at android.view.View$PerformClick.runView.java:21163
                                                                                  at android.os.Handler.handleCallbackHandler.java:739
                                                                                  at android.os.Handler.dispatchMessageHandler.java:95
                                                                                  at android.os.Looper.loopLooper.java:148
                                                                                  at android.app.ActivityThread.mainActivityThread.java:5459
                                                                                  at java.lang.reflect.Method.invokeNative Method
                                                                                  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.runZygoteInit.java:738
                                                                                  at com.android.internal.os.ZygoteInit.mainZygoteInit.java:628
08-16 10:06:50.187 31228-31650/com.fenghua.traffic E/RetryHandler.retryRequestL:91: retry error, curr request is null
08-16 10:06:50.199 31228-31228/com.**.**E/error: com.lidroid.xutils.exception.HttpException: java.io.IOException: Target host must not be null, or set in parameters. scheme=null, host=null, path=--java.io.IOException: Target host must not be null, or set in parameters. scheme=null, host=null, path=

Illegal character in path at index 68: http://**h//upload/5f534d87a3e148048b275ea5858f27f9[202]再试一下.doc

URIEncoder 肯定可以解决这个异常。
楼主在编码之后如果还出现错误,请仔细核对错误信息噢。就比如说上面的URL是否真的完全编码。

URL里面特殊字符要做转义的,比如用URLEncoder

最主要就是这几句啦,如果你手机访问还是出错,那么基本可以肯定是手机浏览器的缓存了,你试着在地址后面跟上一个随机字符串再测试一下。

response.setHeader"Content-Type","application/octet-stream; charset=UTF-8";
String filepath = "/var/www/web/upload/5f534d87a3e148048b275ea5858f27f9[202]再试一下.doc";
File file = new Filefilepath;
String filename = URLEncoder.encodefile.getName, "utf-8";
response.setHeader"Content-Disposition", "attachment;filename=\"" + filename + "\"";

栏目列表

最新文章

广告位

澳门博彩导航网址