【发布时间】:2012-11-27 20:38:48
【问题描述】:
我正在尝试为 Android(在 Eclipse 中)编写登录系统,并且必须从外部 MySQL-DB 获取数据。
来源我拿了它的代码:Connecting to MySQL Database
我试图从中获取数据的网站是here。(我知道存在一些安全问题,blabla,这不是我现在的问题^^)
我遇到的问题是,当我尝试运行应用程序时,出现“未找到密码”错误。 此错误在此代码中被捕获:
ArrayList<String> passwort = new ArrayList<String>();
ArrayList<String> benutzer = new ArrayList<String>();
try{
jArray = new JSONArray(result);
JSONObject json_data=null;
for(int i=0;i<jArray.length();i++){
json_data = jArray.getJSONObject(i);
passwort.add(json_data.getString("pw"));
benutzer.add(json_data.getString("benutzer"));
}
Intent intent = new Intent(this, MainActivity.class);
intent.putExtra("arrayBenutzerExtra", benutzer);
intent.putExtra("arrayPasswortExtra", passwort);
startActivity(intent);
}
catch(JSONException e1){
Toast.makeText(getBaseContext(), "No Password found" ,Toast.LENGTH_LONG).show();
} catch (ParseException e1) {
e1.printStackTrace();
}
另外,这是我与网站连接的代码,但这似乎不是问题,尽管我没有收到有关此的错误消息!
try{
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("http://winklermarkus.at/appconnection.php");
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
HttpResponse response = httpclient.execute(httppost);
HttpEntity entity = response.getEntity();
is = entity.getContent();
}catch(Exception e){
Log.e("log_tag", "Error in http connection"+e.toString());
}
.php 文件的代码在这里:
$sql_pw = "SELECT ". "Passwort ". "FROM ". "benutzerdaten ";
$result_pw = mysql_query ($sql_pw);
$data_pw = mysql_fetch_array ($result_pw);
$pw = $data_pw["Passwort"];
$sql_benutzer = "SELECT ". "Email ". "FROM ". "benutzerdaten ";
$result_benutzer = mysql_query ($sql_benutzer);
$data_benutzer = mysql_fetch_array ($result_benutzer);
$benutzer = $data_benutzer["Email"];
print(json_encode($pw));
print(json_encode($benutzer));
mysql_close();
?>
正如 Perception 提到的,我没有得到有效的 JSON 输出,这可能与我有关,试图一次传输 2 个字符串?
【问题讨论】:
-
你能粘贴你试图解析的json响应吗?
-
您在 HttpPost 之后找到了 JSON 字符串。请检查一下。可能问题就在这里?
-
始终在处理响应数据之前检查您的 HTTP 请求的状态代码。有关主题的更多信息,您在问题中链接的服务确实 not 返回有效的 JSON。
-
@Perception 哦,好的,这可能是真正的问题,我会将 php 代码添加到我的问题中!
-
我怀疑 php 结果是一个有效的 JSON 数组