Android URL 连接 java.io.FileNotFoundException
Android URL connection java.io.FileNotFoundException
我尝试向 WordlPress 网站发送一个普通的 Http 请求。
如果我用我的网络浏览器打开它一切正常。如果我通过 Android 应用程序打开它,它会抛出 java.io.FileNotFoundException.
Android代码:
class SendComment extends AsyncTask<String, Void, String> {
protected String doInBackground(String... urls) {
String _output = null;
try {
URL url = new URL(urls[0]);
BufferedReader buffer = new BufferedReader(new InputStreamReader(url.openStream()));
_output = buffer.readLine();
buffer.close();
} catch (IOException e) {
e.printStackTrace();
}
return _output;
}
protected void onPostExecute(String result) {
}
}
但是当我删除电子邮件地址的“@”或“.com”时,它甚至可以在 Android 上使用。似乎可用的电子邮件地址是崩溃的原因。
这是 StackTrace:
java.io.FileNotFoundException: http://localhost.com/api/submit_comment?post_id=23856&name=Max&email=Max.Mustermann%40googlemail.com&content=hallo
at com.android.okhttp.internal.http.HttpURLConnectionImpl.getInputStream(HttpURLConnectionImpl.java:206)
at java.net.URL.openStream(URL.java:470)
at de.example.app.SendComment.doInBackground(ServerManager.java:230)
at de.example.app.SendComment.doInBackground(ServerManager.java:1)
at android.os.AsyncTask.call(AsyncTask.java:292)
at java.util.concurrent.FutureTask.run(FutureTask.java:237) at android.os.AsyncTask$SerialExecutor.run(AsyncTask.java:231)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
at java.lang.Thread.run(Thread.java:818)
URL 编码存在问题。看看This Link
String query = URLEncoder.encode("apples oranges", "utf-8");
String url = "https://whosebug.com/search?q=" + query;
我尝试向 WordlPress 网站发送一个普通的 Http 请求。
如果我用我的网络浏览器打开它一切正常。如果我通过 Android 应用程序打开它,它会抛出 java.io.FileNotFoundException.
Android代码:
class SendComment extends AsyncTask<String, Void, String> {
protected String doInBackground(String... urls) {
String _output = null;
try {
URL url = new URL(urls[0]);
BufferedReader buffer = new BufferedReader(new InputStreamReader(url.openStream()));
_output = buffer.readLine();
buffer.close();
} catch (IOException e) {
e.printStackTrace();
}
return _output;
}
protected void onPostExecute(String result) {
}
}
但是当我删除电子邮件地址的“@”或“.com”时,它甚至可以在 Android 上使用。似乎可用的电子邮件地址是崩溃的原因。
这是 StackTrace:
java.io.FileNotFoundException: http://localhost.com/api/submit_comment?post_id=23856&name=Max&email=Max.Mustermann%40googlemail.com&content=hallo
at com.android.okhttp.internal.http.HttpURLConnectionImpl.getInputStream(HttpURLConnectionImpl.java:206)
at java.net.URL.openStream(URL.java:470)
at de.example.app.SendComment.doInBackground(ServerManager.java:230)
at de.example.app.SendComment.doInBackground(ServerManager.java:1)
at android.os.AsyncTask.call(AsyncTask.java:292)
at java.util.concurrent.FutureTask.run(FutureTask.java:237) at android.os.AsyncTask$SerialExecutor.run(AsyncTask.java:231)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
at java.lang.Thread.run(Thread.java:818)
URL 编码存在问题。看看This Link
String query = URLEncoder.encode("apples oranges", "utf-8");
String url = "https://whosebug.com/search?q=" + query;