Php 无法使用android从localhost访问回显数据

Php 无法使用android从localhost访问回显数据,php,android,mysql,wampserver,Php,Android,Mysql,Wampserver,我可以使用android应用程序成功更新本地主机wamp服务器上的数据(例如注册用户),但无法在我的logcat中检索和显示本地主机上的数据。下面是我在android中使用的异步任务 public class AsyncLogIn extends AsyncTask<String,Void,String>{ private static final String TAG = AsyncLogIn.TAG; ProgressDialog progressDialog;

我可以使用android应用程序成功更新本地主机wamp服务器上的数据(例如注册用户),但无法在我的logcat中检索和显示本地主机上的数据。下面是我在android中使用的异步任务

public class AsyncLogIn extends AsyncTask<String,Void,String>{
    private static final String TAG = AsyncLogIn.TAG;
    ProgressDialog progressDialog;
    private Context context;
    private int SignUpOrLogIn = 0;
    String email=null;
    String password=null;
    String username=null;


//flag 0 means register and 1 means login
public AsyncLogIn(Context context, int flag) {

    this.context = context;
    SignUpOrLogIn = flag;
}



@Override
protected String doInBackground(String... arg0) {
    String data=null;
    email = (String)arg0[0];
    password = (String)arg0[1];
    String link=null;

    try {
        data  = URLEncoder.encode("email", "UTF-8") + "=" + URLEncoder.encode(email, "UTF-8");
        data += "&" + URLEncoder.encode("password", "UTF-8") + "=" + URLEncoder.encode(password, "UTF-8");
    } catch (UnsupportedEncodingException e) {
        e.printStackTrace();
    }

    if(SignUpOrLogIn==0){
        username=(String)arg0[2];
        link="http://10.0.0.16/OpenX/register.php";

        if(data!=null){
            try{
                data+= "&" + URLEncoder.encode("username", "UTF-8") + "=" + URLEncoder.encode(username, "UTF-8");
            } catch (UnsupportedEncodingException e) {
                e.printStackTrace();
            }
        }



    }
    else{
        link="http://10.0.0.16/OpenX/login.php";
    }

    try {

        URL url = new URL(link);
        URLConnection conn = url.openConnection();

        conn.setDoOutput(true);
        OutputStreamWriter wr = new OutputStreamWriter(conn.getOutputStream());

        wr.write( data );
        wr.flush();

        BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream()));

        StringBuilder sb = new StringBuilder();
        String line = null;

        // Read Server Response
        while((line = reader.readLine()) != null)
        {
            sb.append(line);
            break;
        }
        return sb.toString();

    } catch(Exception e){
        return new String("Exception: " + e.getMessage());
    }


}

@Override
protected void onPostExecute(String result){

    Log.d("log in result is ", String.valueOf(result.length())); 
}
}
我得到以下信息

08-03 00:50:59.423 8386-8386/com.openx.opencity D/登录结果为:0

基本上,结果变量不返回任何内容。有人知道问题出在哪里吗?请注意,我已成功向以下用户注册:

new AsyncLogIn(this, 0).execute('some-email', 'some_password', 'some_username');

因此,至少我可以连接到服务器

错误凭据的行为是否相同?请尝试
die($data)而不是
echo
。从
while
循环中删除
中断
。它不会从服务器读取完整响应。它将在第一次迭代后终止循环。此外,尝试打印实际响应,而不是其长度。如果有PHP错误的话,你可以看到。哇,谢谢你,我犯了一个愚蠢的错误。中断声明才是问题所在。再次感谢。错误凭据的行为是否相同?请尝试
die($data)而不是
echo
。从
while
循环中删除
中断
。它不会从服务器读取完整响应。它将在第一次迭代后终止循环。此外,尝试打印实际响应,而不是其长度。如果有PHP错误的话,你可以看到。哇,谢谢你,我犯了一个愚蠢的错误。中断声明才是问题所在。再次感谢。
new AsyncLogIn(this, 1).execute("some_email", "some_password"); //1 means   login
new AsyncLogIn(this, 0).execute('some-email', 'some_password', 'some_username');