【发布时间】:2015-12-24 15:53:32
【问题描述】:
我有一个名为 test.php 的 php 文件存储在我的 Openshift 服务器 (http://phpgear-shifz.rhcloud.com/v1/test.php) 中,代码如下。
<?php
echo "Hello";
任务
我正在尝试从 Android 应用程序下载文本。
问题
我通过WiFi 网络连接时收到java.net.UnknownHostException: Unable to resolve host "phpgear-shifz.rhcloud.com": No address associated with hostname,但Mobile Data 一切正常。
Android 活动代码
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_test);
final TextView tvTest = (TextView) findViewById(R.id.tvTest);
new AsyncTask<Void, Void, String>() {
@Override
protected String doInBackground(Void... params) {
try {
final URL url = new URL("http://phpgear-shifz.rhcloud.com/v1/test.php");
final BufferedReader br = new BufferedReader(new InputStreamReader(url.openStream()));
final StringBuilder sb = new StringBuilder();
String line;
while((line = br.readLine())!=null){
sb.append(line).append("\n");
}
br.close();
return sb.toString();
} catch (IOException e) {
e.printStackTrace();
return "Error: " + e.getMessage();
}
}
@Override
protected void onPostExecute(String result) {
tvTest.setText(result);
}
}.execute();
}
回应
在 WiFi 上
关于移动数据
问题
1) 为什么我无法通过WiFi network 连接,而Mobile Data 完全没问题?
2) 如何解决这个问题?
注意:有时会连接,有时不会。
【问题讨论】:
-
您确定 wifi 路由器已连接到互联网吗?即您是否能够从连接到同一个 wifi 的设备/计算机访问 url phpgear-shifz.rhcloud.com/v1/test.php ?
-
是的,我很确定互联网连接,并且可以从设备访问该 URL。
-
我认为您对 ACCESS_NETWORK_STATE
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>有剩余的 Android Manifest 权限 -
我不这么认为,反正这是清单pastebin.com/reqDaPdb
-
我为什么要拥有
Network state permission?我认为我们只需要Internet访问互联网的权限,而只有当我们想检查互联网的STATE时才需要Network state permission。不是吗?
标签: java php android openshift openshift-php-cartidges