Dies in einer Android-Anwendung, macht Java eine POST-Anfrage, mit PHP Umgang damit.Ich mache POST-Anfrage, Server empfängt und protokolliert GET-Anfrage
Dies funktioniert gut, wenn sie lokal arbeiten, Apache-Logs eine POST:
192.168.1.123 - - [29/Mar/2012:15:46:56 +0200] "POST /usuarioLogin.php HTTP/1.1" 200 292 "-" "Apache-HttpClient/UNAVAILABLE (java 1.4)"
Bei der Remote arbeiten, Apache-Logs eine GET-Anfrage, und offensichtlich nicht die Parameter gesendet findet. Apache protokolliert den folgenden:
78.XXX.256.XXX - - [29/Mar/2012:16:20:05 +0200] "GET /usuarioLogin.php HTTP/1.1" 200 267 "-" "Apache-HttpClient/UNAVAILABLE (java 1.4)"
den Java-Code Ausführung das POST:
private void HttpPost(String php, ArrayList<NameValuePair> nameValuePairs) {
try {
HttpClient httpclient = new DefaultHttpClient();
String host = com.android.taggies.LoginUser.getContext().getResources().getString(R.string.host);
HttpPost httppost = new HttpPost(host + 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());
}
}
Und die PHP:
<?php
mysql_connect("localhost","root","");
mysql_select_db("dbBaggies");
$q=mysql_query("SELECT count(*) as 'return' FROM users
WHERE name='$_POST[user]' AND password ='$_POST[pass]'");
while($e=mysql_fetch_assoc($q))
{
$output[]=$e;
}
print(json_encode($output));
mysql_close();
?>
Wenn ich mich richtig erinnere, ist dies ein Cross-Domain-Problem mit Android, die nicht in der Lage ist, POST-Anfragen an externe Server, nur GET zu tun. Ich könnte mich irren. – Th0rndike