0
我正在开发针对android的应用程序,现在我正在执行用户“CreateAccount”和“Login”活动。我能够将用户的信息插入数据库,但我无法从数据库获取用户的信息来执行登录。这是我的Java代码:Android应用程序中的JSON对象请求错误
String showUrl = "http://192.168.0.11/webapps/showUser.php";
public void searchLoginInfo(View view) {
JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.POST,showUrl,null, new Response.Listener<JSONObject>()
{
@Override
public void onResponse(JSONObject response) {
try {
JSONArray users = response.getJSONArray("users");
for (int i = 0; i < users.length(); i++) {
JSONObject user = users.getJSONObject(i);
String username = user.getString("username").toLowerCase();
String password = user.getString("password").toLowerCase();
String retypedPassword = user.getString("retypedpassword").toLowerCase();
String email = user.getString("passphrase").toLowerCase();
}
} catch (JSONException e) {
e.printStackTrace();
}
}
}, new Response.ErrorListener()
{
@Override
public void onErrorResponse(VolleyError error) {
Log.e(TAG, "onErrorResponse: ERORR!!!!!!!!!!!");
Log.e(TAG, "onErrorResponse: ERORR!!!!!!!!!!!"+error.toString());
}
});
requestQueue.add(jsonObjectRequest);
}
的错误,我得到的是:E/MyActivity:onErrorResponse:ERORR !!!!!!!!!!! E/MyActivity:onErrorResponse:ERORR !!!!!!!!!!! com.android.volley.ParseError:org.json.JSONException:Value java.lang.String类型的连接无法转换为JSONObject。 这是我showUser.php脚本:
<?php
if($_SERVER["REQUEST_METHOD"]=="POST"){
include 'connection.php';
showUser();
}
function showUser(){
global $connect;
$query="SELECT* FROM user;";
$result=mysqli_query($connect,$query);
$number_of_rows=mysqli_num_rows($result);
$temp_array=array();
if($number_of_rows>0){
while($row=mysqli_fetch_assoc($result)){
$temp_array[]=$row;
}
}
header('Content-Type:application/json');
echo json_encode(array("users"=>$temp_array));
mysqli_close($connect);
}
?>
从我有红色的在互联网上有可能是与归类的问题?我的表排序和列是utfmb4_general_ci和我的服务器连接排序规则是utfmb4_unicode_ci PrintScreen
我也使用POSTMAN来查看服务器的实际响应,它对我来说看起来不错。
{
"users": [
{
"username": "charlie",
"password": "harris",
"retypedpassword": "harris",
"email": "[email protected]"
},
{
"username": "tomas",
"password": "kovtun",
"retypedpassword": "kovtun",
"email": "[email protected]"
}
]
}
这个问题真的让我失望,所以任何帮助将不胜感激!谢谢!
现在它给此错误:W/System.err的:org.json.JSONException:java.lang.String类型的值连接不能转换到的JSONObject。所以它似乎不再调用onErrorListener。 @Androidjack – Roberto
我在onResponse方法中使用了一个日志,这是“response”的值:E/MyActivity:onResponseError:Connection successfull {“users”:[{“username”:“charlie”,“password”:“哈里斯 “ ”retypedpassword“: ”哈里斯“, ”电子邮件“: ”[email protected]“},{ ”用户名“: ”托马斯“, ”密码“: ”科夫通“, ”retypedpassword“: ”科夫通“,”电子邮件“:”[email protected]“}]} @Androidjack – Roberto
我已经更新了答案,请查看。 –