我在编写第一个Android应用程序时遇到问题。
我想围绕我现有的Web服务器/ Web界面构建应用程序的登录系统。
我正在使用Fuel-Library,据我所知,GET请求工作正常。问题是响应。当我将其打印出来时,所看到的只是有关请求本身的一些信息,但是来自PHP的打印回显未在任何地方显示。
响应打印:
I/System.out: <-- 200 https://...hidden :)
I/System.out: Response : OK
Length : -1
Body : test
Headers : (11)
Connection : Keep-Alive
Date : Mon, 30 Mar 2020 18:06:39 GMT
X-Android-Selected-Protocol : http/1.1
Server : Apache
X-Powered-By : PHP/7.3.5, PleskLin
Content-Type : text/html; charset=UTF-8
X-Android-Received-Millis : 1585591597000
Vary : Accept-Encoding
X-Android-Response-Source : NETWORK 200
X-Android-Sent-Millis : 1585591596960
Keep-Alive : timeout=5, max=100
POST请求也发生同样的情况。
这是我的科特林代码:
val url = "https://myserver.com/testlogin.php?username=".plus(username.toString()).plus("&password=").plus(password.toString())
url.httpGet().responseString{
request, response, result ->
Toast.makeText(this@MainActivity, result.toString(), Toast.LENGTH_LONG).show()
}
以及Web服务器上的PHP代码:
<?php $username = $_GET["username"]; $password = $_GET["password"]; echo $username; ?>
我现在搜索超过7个小时。发送帮助
我刚刚发现问题:
val data = result.get() println(data)
打印php文件的响应字符串。
尝试一下
url.httpGet().responseString { request, response, result ->
when (result) {
is Result.Failure -> {
val ex = result.getException()
println(ex)
}
is Result.Success -> {
val data = result.get()
println(data)
}
}
}