我在清单中包含以下权限:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
我正在使用以下代码:
try {
java.net.URL url = new URL("http://www.temp372.000webhostapp.com/s.php?t=hello_there");
HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
} catch (IOException e) {
e.printStackTrace();
t1.setText("problem occured..");
}
以下是PHP代码:
<?php
$fn = "android.txt";
$data = "";
// get whatever they send and store it to the file.
if($_GET["t"])
{
$data = $_GET["t"];
if ($data !== '')
{
$myfile = fopen($fn, "a");
fwrite($myfile, $data . "\n");
fclose($myfile);
}
}
?>
没有错误来了,我正在尝试将此应用程序运行到Bluestacks和我的手机(ROG电话)中。 但是结果是一样的,没有错误或没有任何错误,因为textview没有设置,只是我的PHP代码没有收到信息,但是当我在Web浏览器中尝试相同的URL时,PHP代码运行起来很酷。
答案 0 :(得分:0)
默认情况下禁止使用HTTP或“明文”,您应该在AndroidManifest.xml android:usesCleartextTraffic =“ true”
答案 1 :(得分:0)
以下是我得到的东西,效果很好: 我不必在清单中添加以下内容:
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
我也不必添加任何权限,例如android:usesCleartextTraffic =“ true”或清单中的任何network_security_config.xml。
当我在后台线程中将代码运行到AsyncTask中时,它起作用,如下所示:
AsyncTask.execute(new Runnable() {
@Override
public void run() {
HttpClient httpclient = new DefaultHttpClient();
try {
httpclient.execute(new HttpGet("https://temp372.000webhostapp.com/s_get.php?t=MyWorld"));
} catch (IOException e) {
e.printStackTrace();
}
}
});
我感谢Artem以及正在努力的所有人。