Невозможно соединить мое приложение для Android с MySQL из-за ошибки соединения, в Android Studio? - PullRequest
0 голосов
/ 02 ноября 2018

Я пытаюсь подключить приложение для 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;
    }
}

Основная активность.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 голосов
/ 02 ноября 2018

В вашем коде PHP измените это

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

TO

$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"));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...