由于android studio中的连接拒绝错误而无法将我的android应用程序与mysql连接?

时间:2018-11-02 04:27:21

标签: android mysql android-studio mysqli

我正在尝试将我的Android应用程序连接到MySQL。当我尝试这样做时,最后我收到一条错误消息,提示连接被拒绝。

我关闭了防火墙并尝试了一下,尽管它不起作用。

这是我的代码

Android Background.java:这用于将我的login.php文件与android应用程序链接

import android.app.AlertDialog;
import android.content.Context;
import android.os.AsyncTask;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URI;
import java.net.URL;
import java.net.URLEncoder;

public class background extends AsyncTask <String,Void,String> {

    AlertDialog dialog;
    Context context;
    public background(Context context)
    {
        this.context=context;
    }

    @Override
    protected void onPreExecute() {
        dialog = new AlertDialog.Builder(context).create();
        dialog.setTitle("Login Status");
    }

    @Override
    protected void onPostExecute(String s) {
        dialog.setMessage(s);
        dialog.show();
    }

    @Override
    protected String doInBackground(String... voids) {

        String result = "";
        String user = voids[0];
        String password = voids[1];

        String connstr ="http://localhost:3306/login.php";

        try {
            URL url = new URL(connstr);
            HttpURLConnection http =(HttpURLConnection) url.openConnection();
            http.setRequestMethod("POST");
            http.setDoInput(true);
            http.setDoOutput(true);

            OutputStream ops = http.getOutputStream();
            BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(ops,"UTF-8"));
            String data = URLEncoder.encode("user","UTF-8")+"="+URLEncoder.encode(user,"UTF-8")
                    +"&&"+URLEncoder.encode("password","UTF-8")+"="+URLEncoder.encode(password,"UTF-8");
            writer.write(data);
            writer.flush();
            writer.close();
            ops.close();

            InputStream ips = http.getInputStream();
            BufferedReader reader = new BufferedReader(new InputStreamReader(ips,"ISO-8859-1"));
            String line = "";
            while ((reader.readLine())!= null)
            {
                result += line;
            }
            reader.close();
            ips.close();
            http.disconnect();
            return result;
        }
        catch (MalformedURLException e)
        {
           result = e.getMessage();
        } catch (IOException e) {
            result = e.getMessage();
        }


        return result;
    }
}

Main Activity.java

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;

public class MainActivity extends AppCompatActivity {

    EditText pas,usr;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        usr = (EditText) findViewById(R.id.username);
        pas = (EditText) findViewById(R.id.password);
    }

    public void loginBtn(View view)
    {
        String user = usr.getText().toString();
        String password = pas.getText().toString();

        background bg = new background(this);
        bg.execute(user,password);


    }
}

Login.php

<?php
$db = "test01";
$user = $_POST["root"];
$password  = $_POST[""];
$host = "localhost";

$connection =new mysqli('192.168.8.102','root','','test01');

    if ($connection->connect_errno)
        {
            //die("Connection failed: " . $connection->connect_error);
            $q = "Select * from user where user like '$user' and pass like '$pass'";
            Sresult = mysqli_query($connection,$q);

            if(mysqli_num_rows($result)>0)
            {
                echo "Login Successful";

            }

            else
            {
                echo "Login failed"
            }

        }

            echo "Not Connected";


?>

1 个答案:

答案 0 :(得分:0)

在您的PHP代码中对此进行更改

$user = $_POST["root"];
$password  = $_POST[""];

$user = $_POST["user"];
$password  = $_POST["password"];

我想是的,您应该更改此

BufferedReader reader = new BufferedReader(new InputStreamReader(ips,"ISO-8859-1"));

收件人

BufferedReader reader = new BufferedReader(new InputStreamReader(ips,"UTF-8"));