HTTP请求导致java.io.FileNotFoundException

Apu*_*rva -1 java android

下面是从doInBackground()方法发出http请求的代码,由于某种原因它正在抛出FileNotFoundException

Bitmap icon = null;
String url = "http://abc.xyz.net/com.tatvic.oatest.gif?uv=2.0&ds=Yes&bt=100.0&tis=11.808&ais=5.478&tes=NA&aes=NA&cs=still";

try {
    InputStream in = new java.net.URL(url).openStream();
    icon = BitmapFactory.decodeStream(in);

} catch (MalformedURLException e) {
    e.printStackTrace();
} catch (FileNotFoundException e) {
    e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)

我遵循的另一种方法是使用HttpURLConnection如下所示,但仍然会发生相同的异常.

HttpURLConnection urlConnection = (HttpURLConnection) new URL(url).openConnection();
InputStream in = new BufferedInputStream(urlConnection.getInputStream());
icon = BitmapFactory.decodeStream(in);
Run Code Online (Sandbox Code Playgroud)

堆栈跟踪:

12-27 15:19:54.726 31141-31188/com.tatvic.oatest W/System.err: java.io.FileNotFoundException: http://abc.xyz.net/com.tatvic.oatest.gif?uv=2.0&ds=Yes&bt=100.0&tis=11.808&ais=5.478&tes=NA&aes=NA&cs=still
12-27 15:19:54.729 31141-31188/com.tatvic.oatest W/System.err:     at com.android.okhttp.internal.huc.HttpURLConnectionImpl.getInputStream(HttpURLConnectionImpl.java:238)
12-27 15:19:54.729 31141-31188/com.tatvic.oatest W/System.err:     at java.net.URL.openStream(URL.java:470)
12-27 15:19:54.729 31141-31188/com.tatvic.oatest W/System.err:     at com.tatvic.lib.uit.e.a(Unknown Source)
12-27 15:19:54.729 31141-31188/com.tatvic.oatest W/System.err:     at com.tatvic.lib.uit.e.doInBackground(Unknown Source)
12-27 15:19:54.729 31141-31188/com.tatvic.oatest W/System.err:     at android.os.AsyncTask$2.call(AsyncTask.java:295)
12-27 15:19:54.730 31141-31188/com.tatvic.oatest W/System.err:     at java.util.concurrent.FutureTask.run(FutureTask.java:237)
12-27 15:19:54.730 31141-31188/com.tatvic.oatest W/System.err:     at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:234)
12-27 15:19:54.730 31141-31188/com.tatvic.oatest W/System.err:     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
12-27 15:19:54.730 31141-31188/com.tatvic.oatest W/System.err:     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
12-27 15:19:54.730 31141-31188/com.tatvic.oatest W/System.err:     at java.lang.Thread.run(Thread.java:818)
Run Code Online (Sandbox Code Playgroud)

即使FileNotFoundException发生了,我也无法从任何文件路径访问任何内容.我正在捕捉异常,但我还是要打电话给那个网址.

异常原因是什么?我该如何解决

Eri*_* B. 6

异常的原因是什么?

FileNotFoundException如果服务器抛出404,则仅在进行网络呼叫时抛出.即使您使用不允许的方法,即使用GET而不是POST,一些错误的服务器实现也会抛出404.

我该如何解决?

您可以通过点击浏览器中的URL并确保它确实存在来解决它.如果它存在,你不应该得到这个例外.