【发布时间】:2020-05-16 11:52:20
【问题描述】:
我是 android 开发和编程的新手。我正在网上学习一些关于 android 开发的教程,我想在我的应用程序中以字符串形式下载网站源代码进行处理,但我无法这样做。有时应用程序需要将近 5 到 10 分钟才能得到响应,但我的应用程序仍然无法正确连接下面是我使用的代码。 请帮忙 并请提供一些故障排除方法
Java 代码:
package com.example.webapp1;
import androidx.appcompat.app.AppCompatActivity;
import android.os.AsyncTask;
import android.os.Bundle;
import android.util.Log;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;
import java.util.concurrent.ExecutionException;
public class MainActivity extends AppCompatActivity {
public class DownloadTask extends AsyncTask<String,Void,String>
{
@Override
protected String doInBackground(String... strings) {
String result = "";
URL url;
URLConnection urlConnection = null;
try {
url = new URL(strings[0]);
urlConnection =url.openConnection();
InputStream in = urlConnection.getInputStream();
InputStreamReader reader = new InputStreamReader(in);
int data = reader.read();
while (data != -1)
{
char current = (char) data;
result += current;
data = reader.read();
}
return result;
}
catch (Exception e)
{
e.getStackTrace();
return "failed";
}
}
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
String result =null;
DownloadTask task = new DownloadTask();
try {
result = task.execute("https://www.imdb.com/list/ls052283250/").get();
} catch (ExecutionException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
}
Log.i("result content",result);
}
}
Android Mainfest:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.webapp1">
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
【问题讨论】: