我正在尝试使用PHP为Android项目编写基本帐户。我在脚本中发布了电子邮件,密码和昵称,并在数据库中查询重复项,如果没有找到则插入信息。如果我只是运行PHP脚本它工作正常,但不是当我尝试从Android发布的东西。这是代码:
public String createUser(String email, String pass, String nick) {
ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
nameValuePairs.add(new BasicNameValuePair("email", email));
nameValuePairs.add(new BasicNameValuePair("password", pass));
nameValuePairs.add(new BasicNameValuePair("nick", nick));
InputStream is = null;
String reply = null;
try {
HttpClient httpclient = new DefaultHttpClient();
// must store something locally to define this url
// if the url ever changes, gotta make sure droids know without
// requiring an update
HttpPost httppost = new HttpPost(STR_PHP_USER);
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
HttpResponse response = httpclient.execute(httppost);
HttpEntity entity = response.getEntity();
is = entity.getContent();
BufferedReader reader = new BufferedReader(new InputStreamReader(
is, "iso-8859-1"), 8);
reply = reader.readLine();
Log.e("createUser", "php response is "+reply);
is.close();
} catch (Exception e) {
Log.e("log_tag", "Error in http connection " + e.toString() + " getCreateUserResult_HTTPPost");
}
return reply;
}
脚本应该返回0表示双重失败,1表示电子邮件失败,2表示缺刻失败,3表示成功。从android项目我总是得到0,因为数据库中已经有一个空名和缺口的用户。
另外,print_r($_GET, true));
会导致:
Array
(
)
当我运行android项目时,我得到了
Array
(
[email] => Random@someplace.org
[password] => somepassword
[nick] => RandoTheMagnificent
)
如果我是通过浏览器进行的。
有什么想法吗?
答案 0 :(得分:0)
在您的Android应用中,您使用POST发送参数,而不是GET。
您应该使用GET而不是修改脚本来使用POST。
P.S。您也可以通过添加print_r($_POST)
来检查它。