Исключение с веб-сервисом (java.net.SocketException Разрешение отклонено) в Android - PullRequest
4 голосов
/ 23 ноября 2010

Когда я вызываю веб-сервис, он возвращает мне это исключение: java.net.SocketException Разрешение отклонено.Я не знаю, что это за проблема.Я не знаю, как решить эту проблему?

home.java page:

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

     }

subscriber.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 - Соединение отклонено.

Скажите, пожалуйста, как избежать этой проблемы.

Ответы [ 4 ]

4 голосов
/ 24 февраля 2011

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

ifconfig

получить реальный сетевой адрес вместо обратной связи и использовать этот реальный сетевой адрес.

2 голосов
/ 23 ноября 2010

Вы действительно используете веб-сервер на локальном хосте?

Если это так, проверили ли вы его прослушивание с помощью netstat, и действительно протестировали его с помощью известного работающего клиента, такого как браузер или netcat (nc)?

А ты понимаешь, что localhost означает само устройство андроид?Если сервер работает на компьютере разработчика, на котором размещен эмулятор, вместо этого необходимо использовать специальный адрес-псевдоним для обратной связи компьютера разработки.Если ваше приложение работает на реальном телефоне, еще сложнее связаться с сервером на вашем компьютере, если вы не используете Wi-Fi или не настраиваете USB-модем.

1 голос
/ 21 ноября 2012

Я просто изменяю свой IP-адрес Ethernet 192.168.1.80 вместо использования "localhost" или "127.0.0.1", и это работает ...

0 голосов
/ 17 декабря 2010

я получил это решение. я изменил файл конфигурации сервера Apache. (Я назвал веб-сервис, который находится в php)

...