Android应用程序与mysql数据库的连接
我尝试将我的android应用程序连接到MySQL数据库。使用postman通过php文件检查连接数据库。但仍然无法将android应用程序连接到MySQL数据库。我不知道这是我的code.stop-run应用程序的原因。这里我包括我的录音部分 dbConnect.php`Android应用程序与mysql数据库的连接,android,mysql,xampp,Android,Mysql,Xampp,我尝试将我的android应用程序连接到MySQL数据库。使用postman通过php文件检查连接数据库。但仍然无法将android应用程序连接到MySQL数据库。我不知道这是我的code.stop-run应用程序的原因。这里我包括我的录音部分 dbConnect.php` <?php $DB_NAME ="garment"; $DB_USER ="root"; $DB_PASSWORD =""; $DB_HOST ="localhost"; /
<?php
$DB_NAME ="garment";
$DB_USER ="root";
$DB_PASSWORD ="";
$DB_HOST ="localhost";
//Connecting to Database
$con = mysqli_connect($DB_HOST,$DB_USER,$DB_PASSWORD,$DB_NAME);
if(!$con)
{
//echo "Connection Error..".mysqli_connect_error();
}
else
{
//echo"<h3>Database Connectrion success...</h3>";
}
?>
Constants.java
package com.example.gagana.garment;
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.MalformedURLException;
import java.net.URI;
import java.net.URL;
import java.net.URLEncoder;
import javax.net.ssl.HttpsURLConnection;
public class Constants extends AsyncTask<String,Void,String> {
AlertDialog alertDialog;
Context ctx;
Constants(Context ctx)
{
this.ctx=ctx;
}
@Override
protected void onPreExecute() {
alertDialog = new AlertDialog.Builder(ctx).create();
alertDialog.setTitle("Login Information.....");
}
private static final String Root_URL = "http://192.168.8.10/android/userLogin.php";
@Override
protected String doInBackground(String... strings) {
String method = strings[0];
if(method.equals("login"))
{
String username=strings[1];
String password=strings[2];
try {
URL url = new URL(Root_URL);
HttpsURLConnection httpsURLConnection=(HttpsURLConnection)url.openConnection();
httpsURLConnection.setRequestMethod("POST");
httpsURLConnection.setDoOutput(true);
httpsURLConnection.setDoInput(true);
OutputStream outputStream = httpsURLConnection.getOutputStream();
BufferedWriter bufferedWriter =new BufferedWriter(new OutputStreamWriter(outputStream,"UTF-8"));
String data= URLEncoder.encode("username","UTF-8")+"="+URLEncoder.encode(username,"UTF-8")+"&"+
URLEncoder.encode("password","UTF-8")+"="+URLEncoder.encode(password,"UTF-8");
bufferedWriter.write(data);
bufferedWriter.flush();
bufferedWriter.close();
outputStream.close();
InputStream inputStream=httpsURLConnection.getInputStream();
BufferedReader bufferedReader=new BufferedReader(new InputStreamReader(inputStream,"iso-8859-1"));
String response="";
String line="";
while ((line=bufferedReader.readLine())!=null)
{
response+=line;
}
bufferedReader.close();
inputStream.close();
httpsURLConnection.disconnect();
return response;
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
return null;
}
@Override
protected void onProgressUpdate(Void... values) {
super.onProgressUpdate(values);
}
@Override
protected void onPostExecute(String s) {
alertDialog.setMessage(s);
alertDialog.show();
}
}
`
package com.example.gagana.garment;
导入android.app.AlertDialog;
导入android.content.Context;
导入android.os.AsyncTask;
导入java.io.BufferedReader;
导入java.io.BufferedWriter;
导入java.io.IOException;
导入java.io.InputStream;
导入java.io.InputStreamReader;
导入java.io.OutputStream;
导入java.io.OutputStreamWriter;
导入java.net.MalformedURLException;
导入java.net.URI;
导入java.net.URL;
导入java.net.urlcoder;
导入javax.net.ssl.HttpsURLConnection;
公共类常量扩展异步任务{
警报对话框警报对话框;
上下文ctx;
常量(上下文ctx)
{
这个.ctx=ctx;
}
@凌驾
受保护的void onPreExecute(){
alertDialog=新建alertDialog.Builder(ctx.create();
alertDialog.setTitle(“登录信息…”);
}
私有静态最终字符串Root_URL=”http://192.168.8.10/android/userLogin.php";
@凌驾
受保护的字符串背景(字符串…字符串){
字符串方法=字符串[0];
if(方法等于(“登录”))
{
字符串用户名=字符串[1];
字符串密码=字符串[2];
试一试{
URL URL=新URL(根URL);
HttpsURLConnection HttpsURLConnection=(HttpsURLConnection)url.openConnection();
httpsURLConnection.setRequestMethod(“POST”);
httpsURLConnection.setDoOutput(真);
httpsURLConnection.setDoInput(true);
OutputStream OutputStream=httpsURLConnection.getOutputStream();
BufferedWriter BufferedWriter=新的BufferedWriter(新的OutputStreamWriter(outputStream,UTF-8));
字符串数据=URLEncoder.encode(“用户名”,“UTF-8”)+”=“+URLEncoder.encode(用户名,“UTF-8”)+”&”+
urlcoder.encode(“密码”,“UTF-8”)+“=”+urlcoder.encode(密码,“UTF-8”);
bufferedWriter.write(数据);
bufferedWriter.flush();
bufferedWriter.close();
outputStream.close();
InputStream InputStream=httpsURLConnection.getInputStream();
BufferedReader BufferedReader=新的BufferedReader(新的InputStreamReader(inputStream,“iso-8859-1”);
字符串响应=”;
字符串行=”;
而((line=bufferedReader.readLine())!=null)
{
响应+=行;
}
bufferedReader.close();
inputStream.close();
httpsURLConnection.disconnect();
返回响应;
}捕获(格式错误){
e、 printStackTrace();
}捕获(IOE异常){
e、 printStackTrace();
}
}
返回null;
}
@凌驾
受保护的void onProgressUpdate(void…值){
super.onProgressUpdate(值);
}
@凌驾
受保护的void onPostExecute(字符串s){
alertDialog.setMessage;
alertDialog.show();
}
}
`
Post error log。Haresh Chhelana先生查看代码中的错误在哪里,以确定崩溃的原因。当通过邮递员时,api工作正常吗?是的,api工作正常
package com.example.gagana.garment;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
public class MainActivity extends AppCompatActivity {
private EditText usernametxt,passwordtxt,factoryname;
private Button login;
String username,password;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
usernametxt=(EditText)findViewById(R.id.txtusername);
passwordtxt=(EditText)findViewById(R.id.txtpassword);
factoryname=(EditText)findViewById(R.id.factoryname);
login=(Button)findViewById(R.id.btnlogin);
}
public void userLogin(View view)
{
username = usernametxt.getText().toString();
password = passwordtxt.getText().toString();
String method="login";
Constants constants=new Constants(this);
constants.execute(method,username,password);
}
}
package com.example.gagana.garment;
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.MalformedURLException;
import java.net.URI;
import java.net.URL;
import java.net.URLEncoder;
import javax.net.ssl.HttpsURLConnection;
public class Constants extends AsyncTask<String,Void,String> {
AlertDialog alertDialog;
Context ctx;
Constants(Context ctx)
{
this.ctx=ctx;
}
@Override
protected void onPreExecute() {
alertDialog = new AlertDialog.Builder(ctx).create();
alertDialog.setTitle("Login Information.....");
}
private static final String Root_URL = "http://192.168.8.10/android/userLogin.php";
@Override
protected String doInBackground(String... strings) {
String method = strings[0];
if(method.equals("login"))
{
String username=strings[1];
String password=strings[2];
try {
URL url = new URL(Root_URL);
HttpsURLConnection httpsURLConnection=(HttpsURLConnection)url.openConnection();
httpsURLConnection.setRequestMethod("POST");
httpsURLConnection.setDoOutput(true);
httpsURLConnection.setDoInput(true);
OutputStream outputStream = httpsURLConnection.getOutputStream();
BufferedWriter bufferedWriter =new BufferedWriter(new OutputStreamWriter(outputStream,"UTF-8"));
String data= URLEncoder.encode("username","UTF-8")+"="+URLEncoder.encode(username,"UTF-8")+"&"+
URLEncoder.encode("password","UTF-8")+"="+URLEncoder.encode(password,"UTF-8");
bufferedWriter.write(data);
bufferedWriter.flush();
bufferedWriter.close();
outputStream.close();
InputStream inputStream=httpsURLConnection.getInputStream();
BufferedReader bufferedReader=new BufferedReader(new InputStreamReader(inputStream,"iso-8859-1"));
String response="";
String line="";
while ((line=bufferedReader.readLine())!=null)
{
response+=line;
}
bufferedReader.close();
inputStream.close();
httpsURLConnection.disconnect();
return response;
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
return null;
}
@Override
protected void onProgressUpdate(Void... values) {
super.onProgressUpdate(values);
}
@Override
protected void onPostExecute(String s) {
alertDialog.setMessage(s);
alertDialog.show();
}
}
`