Я уже создал веб-сайт, который в настоящее время размещается на Hostinger. Ссылка на мой сайт начинается с https://myweb.com вместо http. Я пробовал много кодов, но я не могу войти в мое приложение. На самом деле, я хочу связать свое приложение Android с моей базой данных онлайн-сайта (MySQL). Но я не мог найти никакого решения. Я также пробовал синтаксис HttpURLConnection
но он не работает, потому что мой протокол веб-сайта - https://
. Вот мой код, в котором я хочу зарегистрировать пользователя через мое приложение для Android (я использую метод GET в PHP-скрипте):
public class MainActivity extends AppCompatActivity {
private EditText name,email,pass;
private Button login,register;
private static final String REGISTER_URL="https://bomvibe.com/Android/signup.php";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
name=(EditText) findViewById(R.id.editText);
email=(EditText) findViewById(R.id.editText2);
pass=(EditText) findViewById(R.id.editText3);
login=(Button) findViewById(R.id.button);
register=(Button) findViewById(R.id.button2);
register.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
registerUser();
}
});
}
private void registerUser() {
String uname=name.getText().toString();
String uemail=email.getText().toString();
String upass=pass.getText().toString();
register(uname,uemail,upass);
}
private void register(String uname, String uemail, String upass) {
String urlsuffix="?username="+uname+"&email="+uemail+"&password="+upass;
class RegisterUser extends AsyncTask<String,Void,String>{
ProgressDialog dialogue;
@Override
protected void onPreExecute(){
super.onPreExecute();
dialogue=ProgressDialog.show(MainActivity.this, "Please Wait", null, true, true);
// dialogue.setTitle("Please Wait");
// dialogue.show();
}
@Override
protected void onPostExecute(String s){
super.onPostExecute(s);
dialogue.dismiss();
Toast.makeText(getApplicationContext(), "Registered", Toast.LENGTH_SHORT).show();
}
@Override
protected String doInBackground(String... params) {
String s=params[0];
BufferedReader bufferedReader=null;
try{
URL url=new URL(REGISTER_URL+s);
HttpURLConnection cn=(HttpURLConnection)url.openConnection();
bufferedReader=new BufferedReader(new InputStreamReader(cn.getInputStream()));
String result;
result=bufferedReader.readLine();
return result;
}catch (Exception e){
return null;
}
}
}
RegisterUser regUser=new RegisterUser();
regUser.execute(urlsuffix);
}
}
Чтобы подключить приложение Android к базе данных MySql, вам необходимо написать веб-службы.
Веб-сервис представляет собой программную систему, предназначенную для поддержки взаимодействия между машинами и машинами в сети. Другими словами, в веб-сервисе мы пишем весь запрос базы данных и обрабатываем все типы HTTP-запросов и ответов с данными в форме JSON. Веб-службы написаны на многих языках, таких как JAVA, PHP, Python,.net ect. Эти веб-службы выполняются на стороне сервера. Чтобы получить доступ к этой веб-службе, вам нужно запустить сервер (сервер Apache) и получить URL-адрес файла веб-службы, запущенного на сервере.
Теперь, когда вы вызываете этот веб-сервис со стороны Android, я предлагаю вам использовать volley lib. Это поможет вам сделать HTTP-запрос и легче понять.
Интеграция волейбола lib: https://developer.android.com/training/volley/index.html
Для серверной стороны
https://www.ibm.com/developerworks/webservices/tutorials/ws-eclipse-javase1/ws-eclipse-javase1.html