2014-06-12 3 views
0

У меня возникла странная проблема с моим Android-приложением. Я могу подключать и отправлять данные, когда я жестко кодирую IP-адрес своего сервера, но при попытке использовать имя хоста я получаю ошибки ниже. Я тестировал это через эмулятор Android на сервере Windows 2003. Я также убедился, что адрес начинается с http и что приложение использует разрешение Интернета. Любые идеи относительно того, почему это может быть? Например, я могу подключиться, когда я использую 123.45.678/test.php, но не имя_сервера/test.phpAndroid-приложение не может подключиться к имени хоста, но может подключиться к IP-адресу на сервере

06-12 17:02:30.360: I/Choreographer(642): Skipped 31 frames! The application may be doing too much work on its main thread. 
06-12 17:03:07.670: I/Choreographer(642): Skipped 85 frames! The application may be doing too much work on its main thread. 
06-12 17:03:07.810: I/Choreographer(642): Skipped 36 frames! The application may be doing too much work on its main thread. 
06-12 17:03:16.200: W/System.err(642): java.net.UnknownHostException: Unable to resolve host "HOSTNAME": No address associated with hostname 

Сообщение

public void postData(String Filename) { 
       // Create a new HttpClient and Post Header 
       HttpClient httpclient = new DefaultHttpClient(); 
       if (!MainActivity.address.startsWith("https://") && !MainActivity.address.startsWith("http://")){ 
        MainActivity.address = "http://" + MainActivity.address; 
       } 
       HttpPost httppost = new HttpPost(MainActivity.address); 
       HttpResponse response = null; 
       try { 
        // Add your data 
        //MainActivity.QRdata.replaceAll("\\s+",""); 
        List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(); 
        nameValuePairs.add(new BasicNameValuePair("data", "<data><serial><serial>SN001</serial></serial><items><item>Test1 = Failed</item><item>Test2 = Passed</item><item>Test3 = Passed</item></items></data>")); 
        nameValuePairs.add(new BasicNameValuePair("file", Filename)); 
        httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs)); 

        // Execute HTTP Post Request 
        response = httpclient.execute(httppost); 
        String res = EntityUtils.toString(response.getEntity()); 
        Log.v("Response = ", res); 

       } catch (ClientProtocolException e) { 
        e.printStackTrace(); 
        // TODO Auto-generated catch block 
       } catch (IOException e) { 
        e.printStackTrace(); 
        // TODO Auto-generated catch block 
       } 
       //return response.toString(); 
      } 

     } 
+0

Ваш сервер работает? –

+0

@Rod_Algonquin Да, я включил PHP и могу подключиться через браузер. – wheatfairies

+0

Вы пытались подключиться к этому хосту через любое другое устройство, то есть ПК? И ваш хост действительно называется HOSTNAME ?! – nyarlathotep77

ответ

0

Моя проблема была специальные разрешения с моей компании, я не понимаю. Я не смог использовать мое приложение для подключения из соображений безопасности. Однако, если кто-то еще сталкивается с той же проблемой, что и я (я просто хотел разместить PHP-скрипт для использования POST), используйте Google App Engine. Я использую его сейчас, и это все, что я искал. https://appengine.google.com/

Смежные вопросы