我想从服务网址读取xml,我写了代码,我的网址没问题,从浏览器中看到,
public String getXML(){
String line = null;
try {
DefaultHttpClient httpClient = new DefaultHttpClient();
HttpGet httpPost = new HttpGet("http://localhost/simplewebservice/index.php?user=1");
HttpResponse httpResponse = httpClient.execute(httpPost);
HttpEntity httpEntity = httpResponse.getEntity();
line = EntityUtils.toString(httpEntity);
} catch (Exception ex) {
Log.d("Error reading xml", ex.toString());
}
return line;
}
但它给了我以下错误java.net.SocketException: Permission denied
。
任何人都可以有更好的解决方案吗?
亲切的问候,
Pritom。
答案 0 :(得分:4)
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
答案 1 :(得分:2)
我确信您使用的模拟器。
Andriod模拟器本身就是独立的虚拟机。如果我们提供localhost/127.0.0.1
作为主机名,那么模拟器将尝试在其环境中搜索网址。为了避免这个问题,我们需要提供本地机器的ipaddress。
请注意,机器名称作为主机名也会产生问题。
127.0.0.1 refers to localhost in the Emulator, not your machine.
Use 10.0.2.2 to connect to your host machine.