2011-05-25 32 views
4

因此,我試圖創建一個URL使用httpget上,下載頁面源。 但我每次運行應用程序時都遇到問題,它說我在字符串/ uri中有非法字符。 這裏是我試過的代碼。Uri問題

String Search = "http://www.lala.com/"; 

HttpGet request = new HttpGet("http://www.lala.com/"); 

和每次我試圖,

Uri search = new Uri("http://www.lala.com/"); 

我得到 「無法實例URI」。

林不知道我做錯了什麼,這也是獲得頁面源代碼。

try 
      { 
      HttpClient client = new DefaultHttpClient(); 
      HttpGet request = new HttpGet("http://www.lala.com/"); 
      HttpResponse response = client.execute(request); 


      InputStream in = response.getEntity().getContent(); 
      BufferedReader reader = new BufferedReader(new InputStreamReader(in)); 
      StringBuilder str = new StringBuilder(); 
      String line = null; 
      while((line = reader.readLine()) != null) 
      { 
       str.append(line); 
      } 
      in.close(); 
      html = str.toString(); 
      } 
      catch (IOException e1) 
      { 

      } 

感謝您的幫助! 〜坦納。

(lala.com是不是我使用者均基於網站:P)

+0

你有沒有嘗試過沒有反斜槓? – 2011-05-25 18:14:03

回答

6

這是因爲URI是一個抽象類,不能被實例化。改爲:

Uri search = Uri.parse("http://www.lala.com/"); 

如果使用HttpGet,則需要使用java.net.URI類而不是android uri。一個簡單的例子:

try { 
     URI search = new URI("http://www.lala.com/"); 
     new HttpGet(search); 
    } catch (URISyntaxException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
+0

感謝您的回覆!我試着你說的,我得到的錯誤「構造函數HttpGet(Uri)未定義」在這條線上, – Tanner 2011-05-25 18:50:48

+0

哎呀!這一行,HttpGet request = new HttpGet(search); – Tanner 2011-05-25 18:51:25

+0

已更新,以回答您的評論。 – nibuen 2011-05-25 19:12:14

0

檢查您的導入。這可能是因爲org.eclipse.emf.common.util.URI和java.net.URI之間的衝突。我的意思是,你可以做Uri search = new Uri(「http://www.lala.com/」),但是第一個,你會看到你提到的錯誤。