1
我真的可以在這裏使用一些幫助。 我正在學習與libGDX的HttpRequest,並且我堅持setContent(); 這是我試圖運行的Java代碼。它工作正常,除了一個小問題:它不會將變量「名稱」和「分數」發送到httptest.php文件。然而,php文件運行正常,將空值插入到數據庫中。 的Eclipse甚至顯示我講的是一個空的名字成功和0的比分結果:用JAVA(libGdx)HttpRequest並用PHP處理它
Status code : 200
Result : connected succesfully inserted and his score: 0
所以它看起來像兩個程序進行通信,除了Java不將數據發送到PHP。 我用完了想法,不知道該怎麼做。
Java代碼:
Map<String, String> parameters = new HashMap<String, String>();
parameters.put("name", "testname1");
parameters.put("score", "56");
HttpRequest request = new HttpRequest(HttpMethods.POST);
request.setUrl("www.myurl.com/httptest.php");
request.setContent(HttpParametersUtils.convertHttpParameters(parameters));
// request.setContent("name=testname&score=10");
Gdx.net.sendHttpRequest(request, new HttpResponseListener() {
@Override
public void handleHttpResponse(HttpResponse httpResponse) {
Gdx.app.log("Status code ", "" + httpResponse.getStatus().getStatusCode());
Gdx.app.log("Result ", httpResponse.getResultAsString());
}
@Override
public void failed(Throwable t) {
Gdx.app.log("Failed ", t.getMessage());
}
});
PHP代碼:
<?php
$name=$_POST["name"];
$scoreget=$_POST["score"];
$score=(int)$scoreget;
if (is_int ($score))
{
// Create connection
$con=mysqli_connect($mycon);
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
else{echo"connected ";}
$sql= "INSERT INTO scores (name, score, text) VALUES ('$name', '$score','')";
if (!mysqli_query($con, $sql))
{
die('Error: ' . mysqli_error($con));
}else{
echo "succesfully inserted ".$name." and his score: ".$score;
}
}else{
echo "Invalid numeric type";
}
?>
我還測試了httptest.php這種形式,它工作正常:
<html>
<body>
<form action="httptest.php" method="post">
Name: <input type="text" name="name"><br>
Score: <input type="text" name="score"><br>
<input type="submit">
</form>
</body>
</html>
在Java代碼中,您有一條註釋掉的行。它是否適用於該行? – Kryten
不幸的是沒有。這是我第一次嘗試,我從我在互聯網上找到的示例文件複製,我不明白爲什麼它不工作... –
'file_get_contents('php:// input');'return anything ? – Chase