gpt4 book ai didi

android - 从空格编码图像 URL

转载 作者:行者123 更新时间:2023-11-29 16:03:12 28 4
gpt4 key购买 nike

我正在开发一个 RSS 阅读器应用程序,但我遇到了图像 URL 的问题,因为它们包含空格。我尝试了这些论坛中的几种技术,但它们都给我不同的错误。我尝试用 %20 替换空格,但我收到文件未找到异常。这是我获取图像的方法:

//String ALLOWED_URI_CHARS = "@#&=*+-_.,:!?()/~'%";
//url = Uri.encode(url, ALLOWED_URI_CHARS);
//URL urlnew = new URL(url);
//URI uri = new URI(urlnew.getProtocol(), urlnew.getUserInfo(), urlnew.getHost(), urlnew.getPort(), urlnew.getPath(), urlnew.getQuery(), urlnew.getRef());
//urlnew = uri.toURL();
//url = URLEncoder.encode(url.replace(" ", "%20"), "utf-8");
url = url.replaceAll(" ", "%20");

Bitmap bitmap=null;
URL imageUrl = new URL(url);
HttpURLConnection conn = (HttpURLConnection)imageUrl.openConnection();
conn.setDoInput(true);
conn.setDoOutput(true);
conn.setRequestMethod("GET");
Log.i("Code:",conn.getResponseCode()+" "+conn.getResponseMessage());
Log.i("Error Message",conn.getErrorStream()+"");
conn.setConnectTimeout(30000);
conn.setReadTimeout(30000);
conn.setInstanceFollowRedirects(true);
InputStream is=conn.getInputStream();
OutputStream os = new FileOutputStream(f);
Utils.CopyStream(is, os);
os.close();
conn.disconnect();
bitmap = decodeFile(f);
return bitmap;

顶部注释的命令是我从其他人那里得到的一些命令。登录目录:

02-20 13:58:19.015: W/System.err(29109): java.io.FileNotFoundException: http://ghadinews.net/upload/new/GhadiNews%20-%20parrot%20-%20ly.jpg
02-20 13:58:19.015: W/System.err(29109): at libcore.net.http.HttpURLConnectionImpl.getInputStream(HttpURLConnectionImpl.java:177)
02-20 13:58:19.015: W/System.err(29109): at com.betaclass.ghadinews.ImageLoader.getBitmap(ImageLoader.java:94)
02-20 13:58:19.015: W/System.err(29109): at com.betaclass.ghadinews.ImageLoader.access$0(ImageLoader.java:63)
02-20 13:58:19.015: W/System.err(29109): at com.betaclass.ghadinews.ImageLoader$PhotosLoader.run(ImageLoader.java:168)
02-20 13:58:19.020: W/System.err(29109): at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:442)
02-20 13:58:19.020: W/System.err(29109): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
02-20 13:58:19.020: W/System.err(29109): at java.util.concurrent.FutureTask.run(FutureTask.java:137)
02-20 13:58:19.020: W/System.err(29109): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
02-20 13:58:19.020: W/System.err(29109): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
02-20 13:58:19.020: W/System.err(29109): at java.lang.Thread.run(Thread.java:856)

如果我将包含 %20 的编码 URL 插入浏览器,图像会正常打开,因此链接有效。

最佳答案

String urlStr = "http://abc.dev.domain.com/0007AC/ads/800x480 15sec h.264.mp4";
URL url = new URL(urlStr);
URI uri = new URI(url.getProtocol(), url.getUserInfo(), url.getHost(), url.getPort(), url.getPath(), url.getQuery(), url.getRef());
url = uri.toURL();

相关:Bad URL encoding for images

关于android - 从空格编码图像 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21908410/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com