2013-09-30 49 views
1

我得到HTTPPOST的響應,從中獲取一個是URL的子字符串,然後對其執行HTTPGET,我無法獲得任何響應。關於這個問題可能有什麼意見?異步任務中的HTTP GET不起作用

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正確的網址是什麼?你 還應該確保做到以下幾點,看任何錯誤:

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

嘗試編碼網址如下:

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://」,也就是毀了你的網址。我仍然認爲這是問題比其他任何東西都更重要,因爲你告訴我硬編碼它工作正常。

+0

是的,當我登錄pkmspogout1它是一個有效的網址(我也檢查了瀏覽器) – androidnoob

+0

也許嘗試System.out.println(線);或Log.i(line);你要追加的地方檢查你的接收數據。 – msj121

+0

順便說一句,你也應該確保logoutresponse!= null。 – msj121