我可以使用Android模拟器访问我的笔记本电脑网络服务器,我使用10.0.2.2:portno
效果很好.
但是当我连接我真正的Android手机时,手机浏览器无法连接到笔记本电脑上的同一个Web服务器.手机通过USB线连接到笔记本电脑.如果我运行adb devices命令,我可以看到我的手机.
我错过了什么?
考虑以下android代码,请解决我的问题:我的笔记本电脑上运行REST服务器..我可以从我的浏览器访问该服务器并获得正确的结果......但现在我想从我的android模拟器中使用它也是使用以下代码在我的笔记本上运行..
// String URL = "http://localhost:8080/server/rest/user/1";
String URL = "http://www.google.com";
HttpClient httpclient = new DefaultHttpClient();
HttpGet request = new HttpGet(URL);
HttpResponse result = httpclient.execute(request);
Run Code Online (Sandbox Code Playgroud)
在模拟器中,当我将URL作为http://www.google.com传递时,我得到了正确的结果,但是当我使用我的localhost url(上面评论的那个)时,我得到连接拒绝....
WARN/System.err(901): org.apache.http.conn.HttpHostConnectException: Connection to http://localhost:8080 refused
WARN/System.err(901): Caused by: java.net.ConnectException: /127.0.0.1:8080 - Connection refused
Run Code Online (Sandbox Code Playgroud)
如果我在我的浏览器上运行相同的URL它可以工作.你能告诉我为什么localhost url不能在模拟器中工作..?
我在我的PC上安装了一个apache服务器,我在其中托管一个PHP文件.
然后我尝试使用eclipse连接到该文件,但它总是给我以下错误
connection to http://10.0.2.2:8080 refused.
Run Code Online (Sandbox Code Playgroud)
我尝试将地址更改为以下内容,但始终出现类似错误.
http://10.0.2.2
http://127.0.0.1
http://localhost
Run Code Online (Sandbox Code Playgroud)
谁能帮帮我吗.
编辑:仅供参考,我可以毫无问题地访问远程服务器(例如www.mydomain.com).
课程文件:
HttpClient httpclient = new DefaultHttpClient();
Log.d("test","t0");
HttpPost httppost = new HttpPost("http://10.0.2.2:8080/mylibman/data.php");
Log.d("test","t1");
HttpResponse response = httpclient.execute(httppost); // error here
Log.d("test","t2");
Run Code Online (Sandbox Code Playgroud)
Android清单:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.migrationdesk.mylibman"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="11"
android:targetSdkVersion="18" />
<uses-permission android:name="android.permission.INTERNET" />
Run Code Online (Sandbox Code Playgroud)
错误LogCat:
11-16 02:02:20.803: E/log_tag(1427): Error in http connection org.apache.http.conn.HttpHostConnectException: Connection to http://10.0.2.2:8080 refused
11-16 02:02:20.803: E/log_tag(1427): Error converting result java.lang.NullPointerException: lock == null
11-16 02:02:20.803: E/log_tag(1427): Error parsing data org.json.JSONException: …Run Code Online (Sandbox Code Playgroud) 我正在阅读中的离子教程
http://ccoenraets.github.io/ionic-tutorial/build-ionic-project.html
Run Code Online (Sandbox Code Playgroud)
并在浏览器上运行该应用
ionic serve
Run Code Online (Sandbox Code Playgroud)
并在android中使用
ionic emulate android
Run Code Online (Sandbox Code Playgroud)
当我按照教程中的说明运行该应用程序时,它在我的chrome浏览器上运行良好,但是当我尝试在模拟器上运行时,我看不到任何数据,它只是带有菜单的空白屏幕。我怀疑它与whilelist有关的问题,并添加了
<allow-navigation href="*" />
Run Code Online (Sandbox Code Playgroud)
到我的/config.xml文件,但仍然无法使用,我当前的config.xml文件是
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<widget id="com.ionicframework.conference472350" version="0.0.1" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">
<name>conference</name>
<description>
An Ionic Framework and Cordova project.
</description>
<author email="hi@ionicframework" href="http://ionicframework.com/">
Ionic Framework Team
</author>
<content src="index.html"/>
<access origin="*" />
<allow-intent href="*" />
<allow-navigation href="*" />
<preference name="webviewbounce" value="false"/>
<preference name="UIWebViewBounce" value="false"/>
<preference name="DisallowOverscroll" value="true"/>
<preference name="android-minSdkVersion" value="16"/>
<preference name="BackupWebStorage" value="none"/>
<preference name="SplashScreen" value="screen"/>
<preference name="SplashScreenDelay" value="3000"/>
<feature name="StatusBar">
<param name="ios-package" value="CDVStatusBar" onload="true"/>
</feature>
<platform name="android"> …Run Code Online (Sandbox Code Playgroud)