I have a project that connect to LAMP server and fetch some data by using AsyncTask . This app run on all Android APIs from API 16 to API 26 correctly . But when examine it on Android 9 ( API 28 ) , in the code that I show below variable "res" does not give back any data . Why?
import android.os.AsyncTask;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.UnsupportedEncodingException;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
import java.net.URLEncoder;
public class loginserver extends AsyncTask {
private String Link = "";
private String User = "";
private String Pass = "";
public loginserver(String link, String user, String pass) {
Link = link;
User = user;
Pass = pass;
}
@Override
protected Object doInBackground(Object[] objects) {
try {
String data = URLEncoder.encode("username", "UTF8") +
"=" + URLEncoder.encode(User, "UTF8");
data += "&" + URLEncoder.encode("password", "UTF8") +
"=" + URLEncoder.encode(Pass, "UTF8");
URL url = new URL(Link);
URLConnection urlConnection = url.openConnection();
urlConnection.setDoOutput(true);
OutputStreamWriter outputStreamWriter =
new OutputStreamWriter(urlConnection.getOutputStream());
outputStreamWriter.write(data);
outputStreamWriter.flush();
BufferedReader bufferedReader =
new BufferedReader(new InputStreamReader(urlConnection.getInputStream()));
StringBuilder stringBuilder = new StringBuilder();
String line = null;
while ((line = bufferedReader.readLine()) != null) {
stringBuilder.append(line);
}
SecondActivity.res = stringBuilder.toString();
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
}