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){}
//代码的其余部分
}
希望这能有所帮助。您好,欢迎光临,请查看此处,了解有关如何提出有关添加更多内容的好问题的更多信息。我的问题尚未发布