2013-06-15 9 views
12

Próbuję uzyskać prostą odpowiedź HTTP z tym URL: http://realtorsipad.demowebsiteonline.net/eventsfeed.phpDlaczego otrzymuję inne HttpResponse niż przeglądarka w systemie Android?

Ale zaskakująco nie wraca oczekiwaną odpowiedź XML raczej powrocie inną stronę HTML!

Nie jestem w stanie zrozumieć, co jest problemem.

Oto aktywność próbki:

public class MainActivity1 extends Activity { 
    String parsingWebURL = "http://realtorsipad.demowebsiteonline.net/eventsfeed.php"; 
    String line = ""; 
    Document docXML; 

    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
     line = getXML(); 
     System.out.println(line); 
    } 

    // ------------------------------------------------ 
    public String getXML() { 
     String strXML = ""; 
     try { 
      DefaultHttpClient httpClient = new DefaultHttpClient(); 
      HttpPost httpPost = new HttpPost(parsingWebURL); 
      HttpResponse httpResponse = httpClient.execute(httpPost); 
      HttpEntity httpEntity = httpResponse.getEntity(); 
      strXML = EntityUtils.toString(httpEntity); 
      return strXML; 
     } catch (Exception e1) { 
      e1.printStackTrace(); 
     } 
     return strXML; 
    } 
} 
+1

Powinieneś prawdopodobnie wykonać żądanie GET zamiast POST. – rciovati

+0

Ten sam wynik zwraca z prośbą GET do. – Nik88

+0

Po prostu wypróbowałem i mój antywirus wkopał i wyświetlił ostrzegawczą stronę HTML. Sprawdź otrzymany kod HTML i sprawdź, czy to prawda. –

Odpowiedz

7

To nie jest kod per se, jest to miejsce, reaguje z dużo przekierowań, gdy wniosek jest złożony z mobilnej aplikacji klienckiej.

Aby zreplikować przeglądarkę komputerową, zmień ciąg znaków agenta użytkownika. Podobnie jak:

public String getXML() { 
    String strXML = ""; 
    try { 

     final HttpParams params = new BasicHttpParams(); 
     HttpClientParams.setRedirecting(params, true); 
     HttpClientParams.setCookiePolicy(params, CookiePolicy.BROWSER_COMPATIBILITY); 

     DefaultHttpClient httpClient = new DefaultHttpClient(params); 
     httpClient.getParams().setParameter(CoreProtocolPNames.USER_AGENT, "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:23.0) Gecko/20131011 Firefox/23.0"); 

     HttpGet httpGet = new HttpGet(parsingWebURL); 

     HttpResponse httpResponse = httpClient.execute(httpGet); 
     HttpEntity httpEntity = httpResponse.getEntity(); 
     strXML = EntityUtils.toString(httpEntity); 
     return strXML; 
    } catch (Exception e1) { 
     e1.printStackTrace(); 
    } 
    return strXML; 
} 
+0

Jak to działa w moich przeglądarkach na komputerze? – Nik88

+0

Obserwują przekierowania. –

+0

@ Nik88 Edytowałem swoją odpowiedź - powyższe działa dla mnie, mam nadzieję, że to działa dla Ciebie! –

Powiązane problemy