Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么我不能下载任何网站的html页面?(我使用的是android studio)_Java_Android_Http_Url - Fatal编程技术网

Java 为什么我不能下载任何网站的html页面?(我使用的是android studio)

Java 为什么我不能下载任何网站的html页面?(我使用的是android studio),java,android,http,url,Java,Android,Http,Url,public类MainActivity扩展了AppCompatActivity{ 对于下载html页面,这甚至没有返回失败 public class DownloadTask extends AsyncTask<String,Void,String>{ @Override protected String doInBackground(String... urls){ String re

public类MainActivity扩展了AppCompatActivity{

对于下载html页面,这甚至没有返回失败

        public class DownloadTask extends AsyncTask<String,Void,String>{
            @Override
            protected String doInBackground(String... urls){

                String result = "";
                URL url;
                HttpURLConnection urlConnection = null;

                try{

                    url = new URL(urls[0]);
                    urlConnection = (HttpURLConnection) url.openConnection();
                    InputStream in = urlConnection.getInputStream();
                    InputStreamReader reader = new InputStreamReader(in);
                    int data = reader.read();
                    while(data!=-1){

                        char current = (char) data;
                        result+=current;
                    }

                    return result;


                } catch (MalformedURLException e) {
                    e.printStackTrace();
                } catch (IOException e) {
                    e.printStackTrace();
                }
                return "failed";
            }
        }
公共类下载任务扩展了异步任务{
@凌驾
受保护的字符串doInBackground(字符串…URL){
字符串结果=”;
网址;
HttpURLConnection-urlConnection=null;
试一试{
url=新url(url[0]);
urlConnection=(HttpURLConnection)url.openConnection();
InputStream in=urlConnection.getInputStream();
InputStreamReader reader=新的InputStreamReader(in);
int data=reader.read();
while(数据!=-1){
当前字符=(字符)数据;
结果+=电流;
}
返回结果;
}捕获(格式错误){
e、 printStackTrace();
}捕获(IOE异常){
e、 printStackTrace();
}
返回“失败”;
}
}

当我在OnCreate中执行它时,我在Logcat中没有得到任何结果(这里我打印了存储html页面的变量)。

正如在您的类中所看到的,您没有向进程传递任何参数(URL)

您需要在类中创建一个参数化构造函数来传递数据。 如下图所示

    public class DownloadTask extends AsyncTask<String,Void,String>{
        private String url1;
            public DownloadTask(String url1){
                this.url1=url1;
            }
    //rest of your code
    try{

                        url = new URL(url1);
    }catch(Exception e){}
//rest of your code
    }
公共类下载任务扩展了异步任务{
私有字符串url1;
公共下载任务(字符串url1){
这个.url1=url1;
}
//代码的其余部分
试一试{
url=新url(url1);
}捕获(例外e){}
//代码的其余部分
}

希望这能有所帮助。

您好,欢迎光临,请查看此处,了解有关如何提出有关添加更多内容的好问题的更多信息。我的问题尚未发布