AsyncTask основной метод:
public class ConnectToServerAsyncTask extends AsyncTask<String, Void, String> {
private Context context;
public ConnectToServerAsyncTask(Context context) {
this.context = context;
}
@Override
protected void onPreExecute() {
alertDialog = new AlertDialog.Builder(context).create();
alertDialog.setTitle("Synchronizing...........");
}
@Override
protected String doInBackground(String... params) {
String order = params[0];
if (order.equalsIgnoreCase("Register")) {
String name = params[1];
String username = params[2];
String password = params[3];
String link = SERVER_ADDRESS + "signUp.php";
try {
String dataToSend = URLEncoder.encode("name","UTF-8")+"=" + URLEncoder.encode(name, "UTF-8") +"&"+
URLEncoder.encode("username","UTF-8")+"="+ URLEncoder.encode(username, "UTF-8")+"&"+
URLEncoder.encode("password", "UTF-8")+"="+URLEncoder.encode(password, "UTF-8");
URL url = new URL(link);
HttpURLConnection con = (HttpURLConnection) url.openConnection();
con.setRequestMethod("POST");
con.setDoOutput(true);
con.setDoInput(true);
OutputStream outputStream = con.getOutputStream();
BufferedWriter bufferedWriter = new BufferedWriter(new OutputStreamWriter(outputStream,"UTF-8"));
bufferedWriter.write(dataToSend);
bufferedWriter.flush();
bufferedWriter.close();
outputStream.close();
InputStream inputStream = con.getInputStream();
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
String result = "";
while(bufferedReader.readLine()!=null) {
result+= bufferedReader.readLine();
}
bufferedReader.close();
inputStream.close();
con.disconnect();
return result;
}
catch (Exception e) {
e.printStackTrace();
}
}
return null;
}
@Override
protected void onPostExecute(String result) {
if (result!=null) {
alertDialog.setMessage(result);
alertDialog.show();
}
else {
}
}
}
PHP:
$con = mysqli_connect("**********.com","**********name","*********","*******_PARKLOG");
if (mysqli_connect_errno($con)){
echo "Error Connect to database";
}
$name = $_POST["name"];
$username = $_POST["username"];
$password = $_POST["password"];
$check = mysqli_prepare($con,"select * from account where username = ?");
mysqli_stmt_bind_param($check,"s",$username);
mysqli_stmt_execute($check);
mysqli_stmt_store_result($check);
$row_count = mysqli_stmt_num_rows($check);
if($row_count == 1){
echo "User already exist, please change a username";
}
else{
$statement = mysqli_prepare($con,"INSERT INTO account (name,username,password) VALUES (?,?,?)");
mysqli_stmt_bind_param($statement,"sss",$name,$username,$password);
$result = mysqli_stmt_execute($statement);
if($result == true) {
echo "Sign up successful";
}
else{
echo "Fail doing operation in database";
}
}
//mysqli_stmt_close($statement);
mysqli_close($con);
где он должен показывать php-сообщение типа «Зарегистрироваться успешно» или «Пользователь уже существует, пожалуйста, измените имя пользователя» или любой другой тип сообщения об ошибке, но он показывает только -1. Что означает, что есть где-то, дайте мне неправильный ответ сервера. Где, когда что-то не так, и как мне это исправить. (Кроме того, эта программа будет работать над вставкой данных в базу данных, но выдает то же сообщение -1) (Файл манифеста Android является правильным.)
проблема исправлена с помощью залпа, хотя я не хочу использовать дополнительную библиотеку в моем проекте, все равно спасибо
Других решений пока нет …