如何解决Android中的MySQL PHP连接问题?

时间:2018-07-18 13:26:59

标签: php android mysql

当我使用php mysql将android连接到远程数据库时,出现异常“连接问题”。如何将数据库连接到服务器。

public class MainActivity extends AppCompatActivity {

    public static final int CONNECTION_TIMEOUT=10000;
           public static final int READ_TIMEOUT=15000;
           private EditText etEmail;
           private EditText etPassword;
           Button btn;
           @Override
           protected void onCreate(Bundle savedInstanceState) {
               super.onCreate(savedInstanceState);
               setContentView(R.layout.activity_main);
               etEmail = (EditText) findViewById(R.id.email);
               etPassword = (EditText) findViewById(R.id.password);
               btn = (Button) findViewById(R.id.button); btn.setOnClickListener(new View.OnClickListener() {
           @Override
           public void onClick(View v) {
               checkLogin();
           } });

           }' '
           public void checkLogin() {

               // Get text from email and passord field
               final String email = etEmail.getText().toString();
               final String password = etPassword.getText().toString();

               // Initialize  AsyncLogin() class with email and password
               new AsyncLogin().execute(email,password);

           }
           private class AsyncLogin extends AsyncTask<String, String, String>
           {
               ProgressDialog pdLoading = new ProgressDialog(MainActivity.this);
               HttpURLConnection conn;
               URL url = null;
               protected void onPreExecute() {
                   super.onPreExecute();

                   //this method will be running on UI thread
                   pdLoading.setMessage("\tLoading...");
                   pdLoading.setCancelable(false);
                   pdLoading.show();

               }
               @Override
               protected String doInBackground(String... params) {
                   try {

                       // Enter URL address where your php file resides
                       url = new URL("http://cognizantdev.com:2083/public_html/login.inc.php");

                   } catch (MalformedURLException e) {
                       // TODO Auto-generated catch block
                       e.printStackTrace();
                       return "exception";
                   }
                   try {
                       // Setup HttpURLConnection class to send and receive data from php and mysql
                       conn = (HttpURLConnection)url.openConnection();
                       conn.setReadTimeout(READ_TIMEOUT);
                       conn.setConnectTimeout(CONNECTION_TIMEOUT);
                       conn.setRequestMethod("POST");

                       // setDoInput and setDoOutput method depict handling of both send and receive
                       conn.setDoInput(true);
                       conn.setDoOutput(true);

                       // Append parameters to URL
                       Uri.Builder builder = new Uri.Builder()
                               .appendQueryParameter("username", params[0])
                               .appendQueryParameter("password", params[1]);
                       String query = builder.build().getEncodedQuery();

                       // Open connection for sending data
                       OutputStream os = conn.getOutputStream();
                       BufferedWriter writer = new BufferedWriter(
                               new OutputStreamWriter(os, "UTF-8"));
                       writer.write(query);
                       writer.flush();
                       writer.close();
                       os.close();
                       conn.connect();

                   } catch (IOException e1) {
                       // TODO Auto-generated catch block
                       e1.printStackTrace();
                       return "exception";
                   }'
                   'try {

                       int response_code = conn.getResponseCode();

                       // Check if successful connection made
                       if (response_code == HttpURLConnection.HTTP_OK) {

                           // Read data sent from server
                           InputStream input = conn.getInputStream();
                           BufferedReader reader = new BufferedReader(new InputStreamReader(input));
                           StringBuilder result = new StringBuilder();
                           String line;

                           while ((line = reader.readLine()) != null) {
                               result.append(line);
                           }

                           // Pass data to onPostExecute method
                           return(result.toString());

                       }else{

                           return("unsuccessful");
                       }

                   } catch (IOException e) {
                       e.printStackTrace();
                       return "exception";
                   } finally {
                       conn.disconnect();
                   }



               //    return null;
               }'
              ' protected void onPostExecute(String result) {

                   //this method will be running on UI thread

                   pdLoading.dismiss();

                   if(result.equalsIgnoreCase("true"))
                   {
                       /* Here launching another activity when login successful. If you persist login state
                       use sharedPreferences of Android. and logout button to clear sharedPreferences.
                        */

                       Intent intent = new Intent(MainActivity.this,activity_success.class);
                       startActivity(intent);
                       MainActivity.this.finish();

                   }else if (result.equalsIgnoreCase("false")){

                       // If username and password does not match display a error message
                       Toast.makeText(MainActivity.this, "Invalid email or password", Toast.LENGTH_LONG).show();

                   } else if (result.equalsIgnoreCase("exception") || result.equalsIgnoreCase("unsuccessful")) {

                       Toast.makeText(MainActivity.this, "OOPs! Something went wrong. Connection Problem.", Toast.LENGTH_LONG).show();

                   }
               }
           } } `

0 个答案:

没有答案