2013-09-30 5 views
1

Я получаю ответ от HTTPPOST, беру подстроку из нее, которая является URL-адресом, а затем выполняет HTTPGET, я не могу получить никакого ответа. Какие-либо материалы о том, что может быть проблемой?HTTP GET в async-задании не работает

String pkmspogout1 = result.substring(result.indexOf(",")+1,result.length()); 
         Log.i("Lpkmspogout1 ", pkmspogout1); 


        HttpClient httpclient4 = new DefaultHttpClient(); 

        HttpResponse logoutresponse ; 
        try { 
         HttpGet httpget = new HttpGet(pkmspogout1); 

         logoutresponse = httpclient4.execute(httpget); 
         BufferedReader in2 = new BufferedReader(new InputStreamReader(logoutresponse.getEntity().getContent())); 

         StringBuffer sb2 = new StringBuffer(""); 

         String line2 = ""; 
         String NL2 = System.getProperty("line.separator"); 
         while ((line2 = in2.readLine()) != null) { 
          sb2.append(line + NL2); 

         } 
         in2.close(); 


         String pkmslogout5 = sb2.toString(); 
         Log.i("logoutresponse from pkms", pkmslogout5+""); 
        } catch (Exception e) {} 

ответ

0

Он работает наконец, Фу! Я попробовал (pkmspogout1.trim()), и это сработало! (пробелы до и после URL-адреса были проблемой).

+0

Полезно знать, я предположил, что это было что-то простое с URL-адресом, когда кодер не удался. Я собирался предложить отделку, но не думал, что это проблема. Хорошо знать, чтобы предложить его в будущем. – msj121

3

ли pkmspogout1 правильный URL? Кроме того, вы должны убедиться в том, чтобы сделать следующее, чтобы увидеть какие-либо ошибки:

catch (Exception e) {e.printStackTrace();} 

Try кодирующей URL следующим образом:

String[] url = pkmspogout1.split("com"); //Or whatever is the last part of the main url. 
         //The letter "." means any character btw as it is a regular expression. 
String finalUrl = url[0]; 
for(int i=0; i<url.length; i++){ 
    finalUrl += URLEncoder.encode(url[i],"UTF-8"); 
} 

Слегка сырым, если честно .... Почему при формировании на сервере то лучше было бы его кодировать.

Вы можете просто попробовать:

pkmspogout1 = pkmspogout1.replace("http://",""); 
pkmspogout1 = URLEncoder.encode(pkmspogout1); 
pkmspogout1 = "http://"+pkmspogout1; 

Смотрите, если это только "HTTP: //", что губит свой адрес. Я все еще полагаю, что это URL-адрес, который является проблемой больше, чем что-либо еще, поскольку вы сказали мне, что он жестко работает.

+0

Да, когда я регистрирую pkmspogout1, это действительный url (я тоже проверял в браузере) – androidnoob

+0

Возможно, попробуйте System.out.println (line); или Log.i (строка); где вы добавляете, чтобы проверить, есть ли ваши данные. – msj121

+0

Кстати, вы также должны убедиться, что logoutresponse! = Null. – msj121

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