我正在创建一个应用程序,其中需要"查看源代码"一个网页所以我首先制作了这个剧本:
public static String getResponseFromUrl(@NonNull String url) throws java.io.IOException {
HttpClient httpclient = new DefaultHttpClient(); // Create HTTP Client
HttpGet httpget = new HttpGet(URL); // Set the action you want to do
HttpResponse response = httpclient.execute(httpget); // Executeit
HttpEntity entity = response.getEntity();
InputStream is = entity.getContent(); // Create an InputStream with the response
BufferedReader reader = new BufferedReader(new InputStreamReader(is, "iso-8859-1"), 8);
StringBuilder sb = new StringBuilder();
String line = null;
while ((line = reader.readLine()) != null)
sb.append(line);
String resString = sb.toString();
is.close();
return resString;
}
但我注意到HttpClient已被弃用。所以经过一些搜索后,我发现我必须在AsyncTask中使用HttpURLConnection,然后,我制作了一个脚本:
public class CodeTask extends AsyncTask<String, Integer, String> {
@Override
protected String doInBackground(String... urls) {
try {
HttpURLConnection urlConnection = null;
String toRet = "";
URL url = new URL(urls[0]);
try {
urlConnection = (HttpURLConnection) url.openConnection();
if (urlConnection.getContent() != null) {
InputStreamReader in = new InputStreamReader((InputStream) urlConnection.getContent());
toRet = IOUtils.toString(in);
Debug(toRet);
} else
Debug("urlConnection is null");
} catch (Exception e) {
e.printStackTrace();
} finally {
if (urlConnection != null)
urlConnection.disconnect();
}
return toRet;
}catch (Exception ex){
ex.printStackTrace();
}
return null;
}
}
然后,我用:
创建一个实例CodeTask codeTask = new CodeTask();
但是当我试图回复时:
String value = new Helper.CodeTask().execute("http://www.rtpv.es/aipv/group.php?code=" + codeInputText.getText());
但它返回一个AsyncTask。我该怎么办?
答案 0 :(得分:0)
最后只添加.get(),它会返回String值。