Ich versuche, eine einfache Login-Anwendung zu erstellen, die mit MySQL-Datenbank verbindet. Die App funktioniert, wenn ich es in localhost testen, aber wenn ich die Datenbank und die PHP-Skripte auf einen Hosting-Server (Byethost) hochgeladen hat, funktioniert es nicht, das Problem scheint mit der Antwort-Zeichenfolge vom Server, es ist nicht " JSON "Warum kann ich keine Daten von meinem Webserver als JSON abrufen, aber ich kann, wenn ich es auf localhost testen
wie ich oben erwähnt, wenn ich die Anwendung in localhost testen, funktioniert es gut.
hier ist der Andorid-Code requestQueue = Volley.newRequestQueue(this);
StringRequest stringRequest = new StringRequest(Request.Method.POST, login_url, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
try{
Log.d("#-SERVER RESPONSE-#",response);
JSONObject jsonObject = new JSONObject(response);
Log.d("#-LOGIN STATUS-#",jsonObject.getString("status"));
} catch (Exception e){
Log.d("#-JSON ERROR-#",e.toString());
}//end if
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Log.d("#-VOLLEY ERROR-#",error.toString());
}
}){
@Override
public Map<String,String> getParams(){
Map<String,String> params = new HashMap<>();
params.put(KEY_USERNAME,username);
params.put(KEY_PASSWORD,password);
return params;
}
};
requestQueue.add(stringRequest);
requestQueue = Volley.newRequestQueue(this);
StringRequest stringRequest = new StringRequest(Request.Method.POST, login_url, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
try{
Log.d("#-SERVER RESPONSE-#",response);
JSONObject jsonObject = new JSONObject(response);
Log.d("#-LOGIN STATUS-#",jsonObject.getString("status"));
} catch (Exception e){
Log.d("#-JSON ERROR-#",e.toString());
}//end if
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Log.d("#-VOLLEY ERROR-#",error.toString());
}
}){
@Override
public Map<String,String> getParams(){
Map<String,String> params = new HashMap<>();
params.put(KEY_USERNAME,username);
params.put(KEY_PASSWORD,password);
return params;
}
};
requestQueue.add(stringRequest);
Und hier ist der PHP-Code
$username = mysqli_real_escape_string($connection,$_POST['username']);
$password = mysqli_real_escape_string($connection,$_POST['password']);
$query = "SELECT * FROM user WHERE username='{$username}' AND password='{$password}'";
$result = mysqli_query($connection,$query);
$json_reply['status'] = 1; //erorr by default
if(mysqli_num_rows($result) > 0){
$json_reply['status'] = 0; //success
}
print(json_encode($json_reply));
Hier ist, wie die Ausgabe des Fensters Android-Monitor.
Antwortstring
<html><body><script type="text/javascript" src="/aes.js" ></script><script>function toNumbers(d){var e=[];d.replace(/(..)/g,function(d){e.push(parseInt(d,16))});return e}function toHex(){for(var d=[],d=1==arguments.length&&arguments[0].constructor==Array?arguments[0]:arguments,e="",f=0;f<d.length;f++)e+=(16>d[f]?"0":"")+d[f].toString(16);return e.toLowerCase()}var a=toNumbers("f655ba9d09a112d4968c63579db590b4"),b=toNumbers("98344c2eee86c3994890592585b49f80"),c=toNumbers("99efa97c59e1cf6146f7e801802ed6bc");document.cookie="__test="+toHex(slowAES.decrypt(c,2,a,b))+"; expires=Thu, 31-Dec-37 23:55:55 GMT; path=/"; document.cookie="referrer="+escape(document.referrer); location.href="http://zsoft.byethost8.com/login.php?ckattempt=1";</script><noscript>This site requires Javascript to work, please enable Javascript in your browser or use a browser with Javascript support</noscript></body></html>
Zeigen Sie Ihren Code für die Ausführung von Web-Service – Vickyexpert
Können Sie die komplette Antwort-String vom Server buchen? Es sieht wie eine normale HTML Site aus. – Mono
@Mono eigentlich ist es so komisch, ich werde die Frage mit der Antwort-Zeichenfolge aktualisieren –