Android登录并注册MySQL HTTPS网站

时间:2018-04-06 09:52:02

标签: php android mysql https

我已经创建了一个目前在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);
    }
}

1 个答案:

答案 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