Android用のアプリを開発しています。今では、ユーザー "CreateAccount"と "Login"アクティビティを行っています。データベースにユーザーの情報を挿入することはできますが、データベースからユーザーの情報を取得してログインを実行することはできません。これは私のJavaコードです:私が得るAndroid Appの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:値型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で、私のサーバー接続の照合順序は、私はまた、サーバーからの実際の応答を確認するためにPOSTMANを使用しているPrintScreen
utfmb4_unicode_ciであり、それは私にはOKに見えます。
{
"users": [
{
"username": "charlie",
"password": "harris",
"retypedpassword": "harris",
"email": "[email protected]"
},
{
"username": "tomas",
"password": "kovtun",
"retypedpassword": "kovtun",
"email": "[email protected]"
}
]
}
この問題は本当に私の人を殺しているので、どんな助けにも感謝します!どうも!
は、今では、このエラーを与える:/ System.errのW:org.json.JSONException:java.lang.String型の値の接続は、JSONObjectに変換することはできません。だから、それはもはやonErrorListenerを呼び出さないようです。 @Androidjack – Roberto
私はonResponseメソッドのログを使用しました。これは "response"の値です:E/MyActivity:onResponseError:Connection successfull {"users":[{"username": "charlie"、 "password": " 「ハリス」、「retypedpassword」:「harris」、「email」:「[email protected]」}、{「username」:「tomas」、「password」:「kovtun」、「retypedpassword」:「kovtun」、 email ":" [email protected] "}]} @Androidjack – Roberto
私は答えを更新しました。 –