我的代码无法正常运行,我正在尝试构建新闻阅读器应用,但我停留在第一阶段,URL的内容未下载这是我的代码:
enter code here
公共类MainActivity扩展了AppCompatActivity {
public class Reader extends AsyncTask<String,Void,String> {
@Override
protected String doInBackground(String... urls) {
URL url;
HttpURLConnection httpURLConnection;
try{
Log.i("Done","Doing..");
url=new URL(urls[0]);
httpURLConnection=(HttpURLConnection) url.openConnection();
httpURLConnection.connect();
InputStream inputStream=httpURLConnection.getInputStream();
InputStreamReader inputStreamReader =new InputStreamReader(inputStream);
int data=inputStreamReader.read();
String res="";
while(data!=-1) {
char cur=(char)data;
res+=cur;
data=inputStreamReader.read();
}
return res;
}
catch(Exception e){
e.printStackTrace();
Log.i("Error:","Incomplete");
return "Failed..";
}
}
@Override
protected void onPostExecute(String result) {
super.onPostExecute(result);
Log.i("Website Html :",result);
}
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Reader reader=new Reader();
reader.execute("http://newsapi.org/v2/top-headlines?country=in&apiKey=b40bd04fbeb24e3e8d871f1ebdcf25fe");
}
}
我还授予了Internet许可,并已完成了解决此问题的所有必要步骤,在此先感谢。
您正在将Activity与Asynctask混合。
以下是您的代码已更正,它给出了正确的结果。
import android.os.AsyncTask;
import android.os.Bundle;
import android.util.Log;
import androidx.appcompat.app.AppCompatActivity;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main_activity);
new Reader().execute("http://newsapi.org/v2/top-headlines?country=in&apiKey=b40bd04fbeb24e3e8d871f1ebdcf25fe");
}
public class Reader extends AsyncTask<String, Void, String> {
@Override
protected String doInBackground(String... urls) {
URL url;
HttpURLConnection httpURLConnection;
try {
Log.i("Done", "Doing..");
url = new URL(urls[0]);
httpURLConnection = (HttpURLConnection) url.openConnection();
httpURLConnection.connect();
InputStream inputStream = httpURLConnection.getInputStream();
InputStreamReader inputStreamReader = new InputStreamReader(inputStream);
int data = inputStreamReader.read();
String res = "";
while (data != -1) {
char cur = (char) data;
res += cur;
data = inputStreamReader.read();
}
Log.i("result:", res);
return res;
} catch (Exception e) {
e.printStackTrace();
Log.i("Error:", e.toString());
return "Failed..";
}
}
@Override
protected void onPostExecute(String result) {
super.onPostExecute(result);
Log.i("Website Html :", result);
}
}
}