我已经创建了一个目前在Hostinger上托管的网站。我的网站链接以https:// myweb.com而不是http开头。我尝试了很多代码,但我无法通过我的应用程序登录。实际上,我想将我的Android应用程序与我的在线网站数据库(MySQL)连接起来。但我找不到任何解决方案。我也尝试了HttpURLConnection
语法,但由于我的网站协议为https://
,因此无效。这是我的代码,我想通过我的Android应用程序注册用户(我在PHP脚本中使用GET方法):
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);
}
}
答案 0 :(得分:0)
要将Android应用程序连接到MySql数据库,您需要编写Web服务。
Web服务是一种软件系统,旨在通过网络支持可互操作的机器对机器交互。换句话说,在Web服务中,我们编写所有数据库查询并使用JSON格式中的数据处理所有类型的HTTP请求和响应。 Web服务使用许多语言编写,如JAVA,PHP,Python,.net等。此Web服务在服务器端执行。要访问此Web服务,您需要运行服务器(Apache服务器)并获取在服务器上运行的Web服务文件的URL。
现在从android端调用此Web服务时,我建议您使用volley lib。这将有助于您提出HTTP请求并更容易理解。
Volley lib整合: https://developer.android.com/training/volley/index.html
对于服务器端
https://www.ibm.com/developerworks/webservices/tutorials/ws-eclipse-javase1/ws-eclipse-javase1.html