2012-08-22 60 views
1

我試圖用這個閱讀關於java http://www.meuhumor.com.br/爲什麼我在讀取java網站網址時出現403錯誤?

URL url; 
     HttpURLConnection connection = null;   
     try{ 
      url = new URL(targetURL); 
      connection = (HttpURLConnection)url.openConnection(); 

      connection.setRequestMethod("POST"); 
      connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded"); 
      connection.setRequestProperty("Content-Language", "en-US"); 
      connection.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.56 Safari/535.11"); 
      connection.setUseCaches(false); 
      connection.setDoInput(true); 
      connection.setDoOutput(true); 

      DataOutputStream dataout = new DataOutputStream(connection.getOutputStream()); 
      dataout.flush(); 
      dataout.close(); 

      InputStream is = connection.getInputStream(); 
      BufferedReader br = new BufferedReader(new InputStreamReader(is)); 
      String line; 
      StringBuffer response = new StringBuffer(); 

      while((line = br.readLine()) != null){ 
       response.append(line); 
       response.append('\n'); 
      } 
      br.close(); 
      String html = response.toString(); 

我可以使用任何瀏覽器訪問該網站,但是當我試圖讓與Java即時得到java.io.IOException異常的HTML:服務器返回HTTP響應代碼:403爲URL:

有人知道一種方法來獲取html?

+0

爲什麼要POST到服務器? – nhahtdh

+0

我試着用GET之前,得到了同樣的錯誤...我讀了某處說我使用這個代碼與帖子,所以它工作到另一個網站,但不是這個... – Igor

回答

1

您很可能會收到HTTP 403響應,因爲您的POST請求沒有正文。您的代碼看起來像是試圖提交表單。如果您的目的是簡單地在不提交表單的情況下下拉頁面內容,請嘗試GET請求,刪除Content-Type標題,刪除connection.setDoOutput(true),並刪除3 DataOutputStream行。

+0

所以,我該怎麼辦?我在另一個網站使用相同的代碼,我可以閱讀html ... – Igor

+0

感謝您的幫助! ; D解決了我的問題。 – Igor

相關問題