获取FileNotFoundException,即使android中存在文件
我正在尝试从链接中获取图像,我的操作如下:获取FileNotFoundException,即使android中存在文件,android,android-asynctask,Android,Android Asynctask,我正在尝试从链接中获取图像,我的操作如下: public class FetchImage extends AsyncTask<String, Void, Drawable> { public static Drawable LoadImageFromWeb(String url) { try { InputStream is = (InputStream) new URL(url).getContent(); Drawable d = Dr
public class FetchImage extends AsyncTask<String, Void, Drawable> {
public static Drawable LoadImageFromWeb(String url) {
try {
InputStream is = (InputStream) new URL(url).getContent();
Drawable d = Drawable.createFromStream(is, "src name");
return d;
} catch (IOException e) {
Log.e("HATA", "THERE is an error", e);
return null;
}
}
@Override
protected Drawable doInBackground(String... params) {
String url = params[0];
return LoadImageFromWeb(url);
}
@Override
protected void onPostExecute(Drawable drawable) {
}
真奇怪。这可能是因为链接中的一些土耳其字符,比如“ı”,而不是“我”吗?如果是这样的话,我该如何修复它
谢谢
编辑:我刚刚意识到另一件事,当我在浏览器中打开followink链接时
7-500x500.jpg
我看到链接发生了变化,变成:
那么,为什么会发生这种情况,为什么我在尝试获取图像时不能使用第一个链接?关于“ı”土耳其字符的说法是正确的:如果您查看您的答案,您将看到Stackoverflow不会自动识别给您带来问题的url
使用Firefox,我可以访问您的url,但当我使用开发人员工具检查url时,url是
请注意,非ASCII字符是转义的
编辑1:
要访问包含非ascii字符的url,您需要在发出请求之前使用特殊字符对url部分进行编码:关于“ı”土耳其字符,您是对的:如果查看您的答案,您将看到Stackoverflow不会自动识别给您带来问题的url
使用Firefox,我可以访问您的url,但当我使用开发人员工具检查url时,url是
请注意,非ASCII字符是转义的
编辑1:
要访问包含非ascii字符的url,您需要在发出请求之前使用特殊字符对url部分进行编码:关于“ı”土耳其字符,您是对的:如果查看您的答案,您将看到Stackoverflow不会自动识别给您带来问题的url
使用Firefox,我可以访问您的url,但当我使用开发人员工具检查url时,url是
请注意,非ASCII字符是转义的
编辑1:
要访问包含非ascii字符的url,您需要在发出请求之前使用特殊字符对url部分进行编码:关于“ı”土耳其字符,您是对的:如果查看您的答案,您将看到Stackoverflow不会自动识别给您带来问题的url
使用Firefox,我可以访问您的url,但当我使用开发人员工具检查url时,url是
请注意,非ASCII字符是转义的
编辑1:
要访问包含非ascii字符的url,您需要在发出请求之前使用特殊字符对url部分进行编码:我想您可以在这里找到答案:
我想你可以在这里找到答案:
我想你可以在这里找到答案:
我想你可以在这里找到答案:
清单中的互联网权限?@Selvin是的,我也可以从其他链接中获取一些图像,但有些链接不起作用,奇怪的是,你应该用url编码对链接进行编码,不确定android是如何做到的。例如,您的雀巢链接应该是编辑:最后一部分是“Ncapk%C4%B1rm%C4%B1z%C4%B1-500x500.jpg”,stackoverflow在清单中显示长链接Internet权限?@Selvin是的,我也可以从其他链接中获取一些图像,但有些链接不起作用,奇怪的是,您应该使用url编码对链接进行编码,不知道android是如何实现的。例如,您的雀巢链接应该是编辑:最后一部分是“Ncapk%C4%B1rm%C4%B1z%C4%B1-500x500.jpg”,stackoverflow在清单中显示长链接Internet权限?@Selvin是的,我也可以从其他链接中获取一些图像,但有些链接不起作用,奇怪的是,您应该使用url编码对链接进行编码,不知道android是如何实现的。例如,您的雀巢链接应该是编辑:最后一部分是“Ncapk%C4%B1rm%C4%B1z%C4%B1-500x500.jpg”,stackoverflow在清单中显示长链接Internet权限?@Selvin是的,我也可以从其他链接中获取一些图像,但有些链接不起作用,奇怪的是,您应该使用url编码对链接进行编码,不知道android是如何实现的。例如,你的雀巢链接应该是编辑:最后一部分是“Ncapk%C4%B1rm%C4%B1z%C4%B1-500x500.jpg”,stackoverflow是长链接,所以没有任何方法从该url获取图像吗?android中有转换url的例程。请参阅下面我的答案中的链接。谢谢,那么没有任何方法可以从该url获取图像吗?android中有转换url的例程。请参阅下面我的答案中的链接。谢谢,那么没有任何方法可以从该url获取图像吗?android中有转换url的例程。请参阅下面我的答案中的链接。谢谢,那么没有任何方法可以从该url获取图像吗?android中有转换url的例程。请参阅下面我的答案中的链接。
02-11 18:22:15.475: E/HATA(16015): THERE is an error
02-11 18:22:15.475: E/HATA(16015): java.io.FileNotFoundException: http://www.marketimyilmazlar.com/image/cache/data/cay/Ncapkırmızı-500x500.jpg
02-11 18:22:15.475: E/HATA(16015): at libcore.net.http.HttpURLConnectionImpl.getInputStream(HttpURLConnectionImpl.java:186)
02-11 18:22:15.475: E/HATA(16015): at java.net.URLConnection$DefaultContentHandler.getContent(URLConnection.java:1018)
02-11 18:22:15.475: E/HATA(16015): at java.net.URLConnection.getContent(URLConnection.java:199)
02-11 18:22:15.475: E/HATA(16015): at java.net.URL.getContent(URL.java:447)
02-11 18:22:15.475: E/HATA(16015): at com.example.barcodescanner.FetchImage.LoadImageFromWeb(FetchImage.java:18)
02-11 18:22:15.475: E/HATA(16015): at com.example.barcodescanner.FetchImage.doInBackground(FetchImage.java:30)
02-11 18:22:15.475: E/HATA(16015): at com.example.barcodescanner.FetchImage.doInBackground(FetchImage.java:1)
02-11 18:22:15.475: E/HATA(16015): at android.os.AsyncTask$2.call(AsyncTask.java:287)
02-11 18:22:15.475: E/HATA(16015): at java.util.concurrent.FutureTask.run(FutureTask.java:234)
02-11 18:22:15.475: E/HATA(16015): at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
02-11 18:22:15.475: E/HATA(16015): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
02-11 18:22:15.475: E/HATA(16015): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
02-11 18:22:15.475: E/HATA(16015): at java.lang.Thread.run(Thread.java:841)