Java Android Studio登录创建帐户

Java Android Studio登录创建帐户,java,php,mysql,Java,Php,Mysql,我在YouTube上学习了一个教程,但我只输入了登录名和创建帐户部分 所以我的问题是,我的程序没有错误,但我无法将新数据插入数据库。我使用wamp作为我的服务器。下面是我向数据库发送请求的类 package com.example.brian.errandangels; import android.app.ProgressDialog; import android.content.Context; import android.os.AsyncTask; import org.a

我在YouTube上学习了一个教程,但我只输入了登录名和创建帐户部分

所以我的问题是,我的程序没有错误,但我无法将新数据插入数据库。我使用wamp作为我的服务器。下面是我向数据库发送请求的类

    package com.example.brian.errandangels;

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

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.params.BasicHttpParams;
import org.apache.http.params.HttpConnectionParams;
import org.apache.http.params.HttpParams;
import org.apache.http.util.EntityUtils;
import org.json.JSONObject;

import java.util.ArrayList;

/**
 * Created by Brian on 2015/12/31.
 */
public class ServerRequests {
    ProgressDialog progressDialog;
    public static final int CONNECTION_TIMEOUT=1000 * 15;
    public static final String SERVER_ADDRESS = "https://192.168.0.2/";


   public ServerRequests(Context context){
       progressDialog = new ProgressDialog(context);
       progressDialog.setCancelable(false);
       progressDialog.setTitle("Processing");
       progressDialog.setMessage("Please wait....");
   }

    public void storeUserDataInBackground(User user, GetUserCallback callback){
        progressDialog.show();
        new StoreUserDataAsyncTask(user, callback).execute();
    }

    public void fetchUserDataInbackground(User user, GetUserCallback callback) {
        progressDialog.show();
        new fetchUserDataAsyncTask(user, callback).execute();
}

    public class StoreUserDataAsyncTask extends AsyncTask<Void, Void, Void> {
        User user;

        GetUserCallback userCallback;

        public StoreUserDataAsyncTask(User user, GetUserCallback userCallback) {
            this.user = user;
            this.userCallback = userCallback;

        }

        @Override
        protected Void doInBackground(Void... params) {
            ArrayList<NameValuePair> dateToSend = new ArrayList<>();
            dateToSend.add(new BasicNameValuePair("name", user.name));
            dateToSend.add(new BasicNameValuePair("account", user.account));
            dateToSend.add(new BasicNameValuePair("password", user.password));
            dateToSend.add(new BasicNameValuePair("phone", user.phone));
            dateToSend.add(new BasicNameValuePair("department", user.department));

            HttpParams httpRequestParams = new BasicHttpParams();
            HttpConnectionParams.setConnectionTimeout(httpRequestParams, CONNECTION_TIMEOUT);
            HttpConnectionParams.setSoTimeout(httpRequestParams, CONNECTION_TIMEOUT);

            HttpClient Client = new DefaultHttpClient(httpRequestParams);
            HttpPost post = new HttpPost(SERVER_ADDRESS + "Register.php");

            try {
                post.setEntity(new UrlEncodedFormEntity(dateToSend));
                Client.execute(post);

            } catch (Exception e) {
                e.printStackTrace();
            }
            return null;

        }

        @Override
        protected void onPostExecute(Void aVoid) {
            progressDialog.dismiss();
            userCallback.done(null);
            super.onPostExecute(aVoid);
        }
    }
            public class fetchUserDataAsyncTask extends AsyncTask<Void, Void, User>{
            User user;
            GetUserCallback userCallback;
            public fetchUserDataAsyncTask(User user, GetUserCallback userCallback){
                this.user = user;
                this.userCallback = userCallback;
            }

            protected User doInBackground(Void... params) {

                ArrayList<NameValuePair> dateToSend = new ArrayList<>();
                dateToSend.add(new BasicNameValuePair("account", user.account));
                dateToSend.add(new BasicNameValuePair("password", user.password));

                HttpParams httpRequestParams = new BasicHttpParams();
                HttpConnectionParams.setConnectionTimeout(httpRequestParams, CONNECTION_TIMEOUT);
                HttpConnectionParams.setSoTimeout(httpRequestParams, CONNECTION_TIMEOUT);

                HttpClient Client = new DefaultHttpClient(httpRequestParams);
                HttpPost post = new HttpPost(SERVER_ADDRESS + "FetchUserData.php");

                User returnedUser = null;
                try {
                    post.setEntity(new UrlEncodedFormEntity(dateToSend));
                    HttpResponse httpResponse = Client.execute(post);

                    HttpEntity entity = httpResponse.getEntity();
                    String result = EntityUtils.toString(entity);
                    JSONObject jObject = new JSONObject(result);
                    if (jObject.length() == 0) {
                        user = null;

                    }else {
                        String name = jObject.getString("name");
                        String phone = jObject.getString("phone");
                        String department = jObject.getString("department");
                        returnedUser = new User(name, phone, department, user.account, user.password);
                    }

                }catch (Exception e){
                    e.printStackTrace();
                }



                return returnedUser;
            }
            @Override
            protected void onPostExecute(User returnedUser) {
                progressDialog.dismiss();
                userCallback.done(returnedUser);
                super.onPostExecute(returnedUser);
            }



        }
    }
这是我的php文件

<?php

    $con=mysqli_connect("localhost", "root","","seniorproject");

    $name = $_POST["name"];
    $account = $_POST["account"];
    $password = $_POST["password"];
    $phone = $_POST["phone"];
    $department = $_POST["department"];

    $statement = mysqli_prepare($con, "INSERT INTO User (name, account, password, phone, department) VALUES(?, ?, ?, ?, ?) ");
    mysqli_stmt_bind_param($statement, "sssss", $name , $account, $password, $phone, $department );
    mysqli_stmt_execute($statement);

    mysqli_stmt_close($statement);


    mysqli_close($con);
?>

这是我在emulator中按create account后的日志,确认192.168.0.2实际上是ip地址,因为错误消息清楚地报告了尝试连接到该端点的超时。

您的问题是什么。你有没有收到错误?没有,我没有收到任何错误,但当我单击“创建帐户”时,数据库从未插入任何数据,所以我想知道发生了什么错误,你必须一步一步地检查,问题出在哪里。检查您的php代码。它能工作吗?谢谢我检查了我的IP地址好几次它能工作你能用chrome从设备上打开php脚本吗?如果失败,则设备使用的LAN、子网、网关地址上存在DNS问题。
<?php

    $con=mysqli_connect("localhost", "root","","seniorproject");

    $name = $_POST["name"];
    $account = $_POST["account"];
    $password = $_POST["password"];
    $phone = $_POST["phone"];
    $department = $_POST["department"];

    $statement = mysqli_prepare($con, "INSERT INTO User (name, account, password, phone, department) VALUES(?, ?, ?, ?, ?) ");
    mysqli_stmt_bind_param($statement, "sssss", $name , $account, $password, $phone, $department );
    mysqli_stmt_execute($statement);

    mysqli_stmt_close($statement);


    mysqli_close($con);
?>
01-01 06:03:38.774 15121-15578/org.pickyou.loginandregisterv1 W/System.err: org.apache.http.conn.ConnectTimeoutException: Connect to /192.168.0.2:443 timed out
01-01 06:03:38.774 15121-15578/org.pickyou.loginandregisterv1 W/System.err:     at org.apache.http.conn.scheme.PlainSocketFactory.connectSocket(PlainSocketFactory.java:121)
01-01 06:03:38.774 15121-15578/org.pickyou.loginandregisterv1 W/System.err:     at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:144)
01-01 06:03:38.774 15121-15578/org.pickyou.loginandregisterv1 W/System.err:     at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:164)
01-01 06:03:38.774 15121-15578/org.pickyou.loginandregisterv1 W/System.err:     at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:119)
01-01 06:03:38.778 15121-15578/org.pickyou.loginandregisterv1 W/System.err:     at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:360)
01-01 06:03:38.778 15121-15578/org.pickyou.loginandregisterv1 W/System.err:     at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:555)
01-01 06:03:38.778 15121-15578/org.pickyou.loginandregisterv1 W/System.err:     at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487)
01-01 06:03:38.778 15121-15578/org.pickyou.loginandregisterv1 W/System.err:     at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:465)
01-01 06:03:38.778 15121-15578/org.pickyou.loginandregisterv1 W/System.err:     at com.example.brian.errandangels.ServerRequests$StoreUserDataAsyncTask.doInBackground(ServerRequests.java:78)
01-01 06:03:38.778 15121-15578/org.pickyou.loginandregisterv1 W/System.err:     at com.example.brian.errandangels.ServerRequests$StoreUserDataAsyncTask.doInBackground(ServerRequests.java:49)
01-01 06:03:38.778 15121-15578/org.pickyou.loginandregisterv1 W/System.err:     at android.os.AsyncTask$2.call(AsyncTask.java:287)
01-01 06:03:38.778 15121-15578/org.pickyou.loginandregisterv1 W/System.err:     at java.util.concurrent.FutureTask.run(FutureTask.java:234)
01-01 06:03:38.778 15121-15578/org.pickyou.loginandregisterv1 W/System.err:     at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
01-01 06:03:38.778 15121-15578/org.pickyou.loginandregisterv1 W/System.err:     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
01-01 06:03:38.778 15121-15578/org.pickyou.loginandregisterv1 W/System.err:     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
01-01 06:03:38.778 15121-15578/org.pickyou.loginandregisterv1 W/System.err:     at java.lang.Thread.run(Thread.java:856)