[英]Not send http request in service android
我正在尝试在后台向本地服务器发送请求。 但我失败了。
class MyService2 : Service() {
..........
fun Check_Presence(){
var url="http://192.168.1.158/cgi-bin/cp/login.sh"
val queue = Volley.newRequestQueue(this)
val postRequest = object : StringRequest(
Request.Method.POST, url,
Response.Listener {response ->
Toast.makeText(getBaseContext(), "response"+response, Toast.LENGTH_LONG).show();
},
Response.ErrorListener() { response ->
Toast.makeText(getBaseContext(), "Not Send Request", Toast.LENGTH_LONG).show();
}
) {
override fun getParams(): Map<String, String> {
val params = HashMap<String, String>()
params["status"] = "1"
return params
}
}
queue.add(postRequest)
}
}
清单文件:
<application
........
<service
android:name=".MyService2"
android:enabled="true"
android:exported="true">
</service>
</application>
主要活动 :
val serviceClass = MyService2::class.java
val serviceIntent = Intent(this, serviceClass)
this.startService(serviceIntent)
只要程序正在运行,它就能正常工作并显示响应...消息。
但是当我关闭程序时,程序会显示“Not Send Request”消息。
注意:Check_Presence函数每分钟运行一次。
当我在服务上检查互联网时,我意识到互联网没有连接。
fun Check_Internet(){
val connectivityManager=this.getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager
val networkInfo=connectivityManager.activeNetworkInfo
if (networkInfo!=null && networkInfo.isConnected) {
Toast.makeText(applicationContext, "INTENET OK : ", Toast.LENGTH_LONG).show();
}
else{
Toast.makeText(applicationContext, "NO INTERNET : ", Toast.LENGTH_LONG).show();
}
}
请帮我。
我的设备:Android 8
如果你不介意我会要求你检查或执行3件事 -
您是否在清单中获得了Internet和网络访问权限?
请将Retrofit库用于HTTP目的,因为Retrofit是一个高度维护,简单高效的库
在您调用localhost服务器(或任何其他服务器)之前,请使用Postman应用程序对其进行测试,以清楚地了解您的网络状态,服务器性能等。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.