gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 16:45:52 32 4
gpt4 key购买 nike

我正在尝试将我的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;
}
}


主要活动

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";


?>

最佳答案

在您的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"));

关于android - 由于android studio中的连接拒绝错误而无法将我的android应用程序与mysql连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53112667/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com