2013-07-08 1 views
0

Я пытаюсь получить данные HTTP перед перенаправлением, когда Android пытается подключиться к Captive Portal.Как получить ответ GET на Android перед перенаправлением?

Вот фрагменты кода:

 httpclient = new DefaultHttpClient(/*params*/); 

     String url = "http://google.com"; 

     Log.d("test_runner", "URL: " + url); 

     HttpGet httpget = new HttpGet(url); 

     HttpResponse response = httpclient.execute(httpget); 
     HttpEntity entity = response.getEntity(); 

     if (entity != null) { 
      entity.consumeContent(); 
     } 


     for(Header h : response.getAllHeaders()){ 
      Log.d("test_runner", h.toString()); 
     } 

     Log.d("test_runner", response.getStatusLine().getStatusCode() + ""); 

     response.getStatusLine(); 

Когда я использую Fiddler Web Debugger я вижу, а затем поток:

enter image description here

Так первое от меня нужно получить статус 302 и после того, как статус переадресации 200.

Однако я сразу получаю ответ после перенаправления.

enter image description here

Походит Android делает перенаправление автоматически, и я не могу поймать его.

Как получить информацию об ответе перед перенаправлением (a.e. 1-я строка из Fiddler, заголовок 302)?

Спасибо

+1

это может быть полезно http://blog.kosev.net/2011/01/follow-302 -redirects-with.html – Alamri

ответ

1

Я нашел решение, (не думаю, что так быстро)

HttpParams params = new BasicHttpParams(); 
HttpClientParams.setRedirecting(params, false); 

httpclient = new DefaultHttpClient(params); 
....