2011-01-29 70 views
3

con.getInputStream()拋出異常,當android, 上運行代碼但是將代碼複製到常規java項目中時,它正在工作,
拋出的對象e包含「detailMessage = Permission denied」。 我的代碼::con.getInputStream()在Android項目中拋出異常,如何解決?

  public static HttpData get(String sUrl) { 
       HttpData ret = new HttpData(); 
       String str; 
       StringBuffer buff = new StringBuffer(); 
       try { 
         URL url = new URL(sUrl); 
         URLConnection con = url.openConnection(); 
         BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream())); 
         while ((str = in.readLine()) != null) { 
           buff.append(str); 
         } 
         ret.content = buff.toString(); 

         //get headers 
         Map<String, List<String>> headers = con.getHeaderFields(); 
         Set<Entry<String, List<String>>> hKeys = headers.entrySet(); 
         for (Iterator<Entry<String, List<String>>> i = hKeys.iterator(); i.hasNext();) { 
           Entry<String, List<String>> m = i.next(); 

           Log.w("HEADER_KEY", m.getKey() + ""); 
           ret.headers.put(m.getKey(), m.getValue().toString()); 
           if (m.getKey().equals("set-cookie")) 
           ret.cookies.put(m.getKey(), m.getValue().toString()); 
         } 
       } catch (Exception e) { 
         Log.e("HttpRequest", e.toString()); 
       } 
       return ret; 
     } 

con object while debug

+1

你爲什麼不給我們拋出異常? – aioobe 2011-01-29 13:10:51

回答

1

加入<uses-permission android:name="android.permission.INTERNET"/>標籤體現 將解決這個問題。 感謝傑姆斯評論。

1

確保您獲得<uses-permission android:name="android.permission.INTERNET"/>而不是<permission android:name="android.permission.INTERNET"/>!那位我一個小時......