4

当我调用 Web 服务时,它返回给我这个异常:java.net.SocketException Permission denied。我不知道真正的问题是什么。我不知道如何解决这个问题?

home.java 页面:

     try 
     { 
       url = new URL("http://localhost/TraderLevels/subscriber.php");
             conn = (HttpURLConnection) url.openConnection();
             dis = conn.getInputStream();
     }
     catch (Exception e) 
     {
            e.printStackTrace();

     }

订阅者.php

$username="root";
        $password="";
        $database="mydb";
        $server="localhost";

$connection = mysql_connect($server,$username,$password);

 if (!$connection)
 {
   die('Not connected : ' . mysql_error());
 }

 $db_selected = mysql_select_db($database, $connection);


 if (!$db_selected)
 {
   die('Can\'t use db : ' . mysql_error());
 }


    $query="SELECT * from user";
    $result = mysql_query($query);

    $dom = new DOMDocument('1.0','UTF-8');
    $dnode = $dom->createElement('usesssrdetails');

    $docNode = $dom->appendChild($dnode);

    $result = mysql_query($query);
   $rowNo=1;

  while ($row = @mysql_fetch_assoc($result))
 {

  $node = $dom->createElement('user');
  $categoryNode = $docNode->appendChild($node);

  $idNode = $dom->createElement('userid',($row['userID']));
  $categoryNode->appendChild($idNode);
                $idNode = $dom->createElement('email',($row['email']));
  $categoryNode->appendChild($idNode);


  $rowNo=$rowNo+1;
 }
 $kmlOutput = $dom->saveXML();
 echo $kmlOutput;

?>

更新:

我通过在清单中添加以下代码解决了上述问题。

< uses-permission android:name="android.permission.INTERNET" />

但是我遇到了另一个异常:java.net.ConnectException: localhost/127.0.0.1:80 - Connection Refused。

请告诉我如何避免这个问题。

4

4 回答 4

4

http://developer.android.com/guide/appendix/faq/commontasks.html#localhostalias

如果配置

获取真实的网络地址而不是环回并使用该真实的网络地址。

于 2011-02-24T06:31:32.540 回答
2

您实际上是在 localhost 上运行网络服务器吗?

如果是这样,您是否验证过它正在使用 netstat 进行侦听并使用已知工作的客户端(例如浏览器或 netcat (nc))对其进行了实际测试?

您是否意识到 localhost 意味着 android 设备本身?如果服务器在托管模拟器的开发机器上运行,则需要使用特殊别名地址来代替开发机器环回。如果您的应用程序在实际手机上运行,​​则在您的 PC 上联系服务器会更加复杂,除非您通过 wifi 访问或设置 USB 网络共享。

于 2010-11-23T10:07:01.807 回答
1

我只是更改为我的以太网 IP 地址 192.168.1.80 而不是使用“localhost”或“127.0.0.1”,它可以工作......

于 2012-11-21T03:00:11.007 回答
0

i got that solution. i changed the configuration file of Apache Server. (I have celled a web service that is in php)

于 2010-12-17T13:56:27.217 回答