2016-04-09 21 views
2

gelen Yanıtını alma, benim PHP sunucu benim Android müşteriye çok basit bir dize yankılanır Değil:Android Hata ayıklama amacıyla PHP Sunucusu

<?php echo "I REALLY LIKE PIE" ?> 

Android'im istemci böyle bir dize almak için aşağıdaki kodu vardır:

URL url = new URL("http://192.168.0.107/index.php"); 
     urlConnection = (HttpURLConnection) url.openConnection(); 


     urlConnection.setReadTimeout(10000); 
     urlConnection.setConnectTimeout(15000); 
     urlConnection.setRequestMethod("POST"); 
     urlConnection.setDoOutput(true); 
     urlConnection.setDoInput(true); 
     urlConnection.connect(); 

     int HTTPResult = urlConnection.getResponseCode(); 
     if (HTTPResult == HttpURLConnection.HTTP_OK) { 
      BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(urlConnection.getInputStream())); 
      String output = ""; 
      while ((output = bufferedReader.readLine()) != null) { 
       returnedString.append(output); 
      } 
      bufferedReader.close(); 

     } 

     urlConnection.disconnect(); 

Ancak, "çıktı" değişkeni boştur ve bu nedenle döndürülen dize de boştur. Neden cevap alamıyorum?

+0

http://192.168.0.107/index.php yerel ip ve android cihaz ile muhtemelen onun erişilemez. –

+0

bağlantı başarılı mı? HTTPResult? –

+0

192.168.0.107 değeri, şebeke var nedir projenizin ayarlandığı ip adresi veya sistem ip adresi Eğer sisteminizin ip adresi ise o zaman doğrudan çalışmaz. Eğer ağın ip adresi ise ve projeniz sunucuda ise, ağa (wifi üzerinden) bağlanabilirsiniz. ve proje kaynaklarına erişebildiğinizi paylaşabilirsiniz. –

cevap

2
  1. Hata ayıklama amacıyla verilen günlükleri ekleyin ya da kesme noktaları ile android hata ayıklayıcısını kullanın.
  2. Telefonunuzdan erişilebilir olmasını sağlamak için php config dosyasında gerekli değişiklikleri yaptığınızdan emin olun. Çalışmalı. Sorun devam ederse bana bildirin. (Sonradan JSON Nesneleri ayrıştırmak için bazı küçük değişikliklerle bu kodu kullanıyorum ama senin durumunda onun sadece bir dize yana çalışmalıdır.
  3. çok daha iyi daha kolay için

    ve optimize, Kullanım OkHttp veya Volley

    URL url = new URL("http://192.168.0.107/index.php"); 
    urlConnection = (HttpURLConnection) url.openConnection(); 
    BufferedReader reader = null; 
    
    urlConnection.setReadTimeout(10000); 
    urlConnection.setConnectTimeout(15000); 
    urlConnection.setRequestMethod("POST"); 
    urlConnection.setDoOutput(true); 
    urlConnection.setDoInput(true); 
    urlConnection.setRequestMethod("GET"); 
    urlConnection.connect(); 
    
    // Read the input stream into a String 
    InputStream inputStream = urlConnection.getInputStream(); 
    StringBuffer buffer = new StringBuffer(); 
    if (inputStream == null) { 
    
    // Nothing to do. 
    
    } 
    reader = new BufferedReader(new InputStreamReader(inputStream)); 
    
    String line; 
    while ((line = reader.readLine()) != null) { 
    // Since it's JSON, adding a newline isn't necessary (it won't affect  parsing) 
    // But it does make debugging a *lot* easier if you print out the completed 
    // buffer for debugging. 
    buffer.append(line + "\n"); 
    } 
    
    
    bufferedReader.close(); 
    
    } 
    
    urlConnection.disconnect(); 
    
+0

Apache httpd.conf dosyasında hangi değişiklikleri yapmalıyım? Diğer kitaplıklara katılmıyorum ve bu görevi 23. API tarafından verilen kütüphanelerle tamamlamayı tercih ediyorum. – darkterbears

+0

httpd.conf dosyasında, Deny ifadesinin tümünü, hepsinden İzin ver olarak değiştirin. Yukarıdaki kod işe yaradı mı? Konsolda aldığınız tüm kayıtlar var mı? – codeyourstack

İlgili konular