Php 无法使用android从localhost访问回显数据
我可以使用android应用程序成功更新本地主机wamp服务器上的数据(例如注册用户),但无法在我的logcat中检索和显示本地主机上的数据。下面是我在android中使用的异步任务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;
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');