无法发送简单的GET Http请求

时间:2019-12-01 22:10:12

标签: android httprequest

我在清单中包含以下权限:

<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代码运行起来很酷。

2 个答案:

答案 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以及正在努力的所有人。