2011-12-21 11 views
0

URLに特定のPDFファイルがあります。私はブラウザでファイルを見ることができます。 例URL:http://www.ncbi.nlm.nih.gov/pmc/articles/PMC109492/pdf/pgen.1000626.pdf?tool=pmcentrezPDFはURLにあります。ダウンロードエラー

しかし、私は

URL url = new URL("http://www.ncbi.nlm.nih.gov/pmc/articles/PMC" + pmcid + "/pdf/pgen.1000626.pdf?tool=pmcentrez"); 

URLConnection con = url.openConnection(); 
InputStream urlIn = con.getInputStream(); 

を行うとき、私は私が間違っているのは何java.io.IOException: Server returned HTTP response code: 403

が得ますか?

おかげで、事前

+0

は、エラーの禁断のアクセスタイプのように思える設定する必要がありますUser-Agentヘッダ

  • を設定する必要があり
  • を認証する必要があり、い接続時(con = url.openConnection())または後にエラーが発生しましたか? – Justmaker

  • +0

    url.openConnection()の後に – y2p

    答えて

    2

    に私は物事の数とすることができます。いくつかの名前を付けるには:

    • することは、あなたがAcceptヘッダ
    1
     URL url = new URL("http://www.ncbi.nlm.nih.gov/pmc/articles/PMC109492/pdf/pgen.1000626.pdf?tool=pmcentrez"); 
    
    
         //for pdf 
         response.setContentType("application/pdf"); 
         response.setHeader("Content-Disposition", "attachment; filename=report" + ".pdf"); 
    
         URLConnection connection = url.openConnection(); 
         InputStream stream = connection.getInputStream(); 
    
         BufferedOutputStream outs = new BufferedOutputStream(response.getOutputStream()); 
         int len; 
         byte[] buf = new byte[1024]; 
         while ((len = stream.read(buf)) > 0) { 
          outs.write(buf, 0, len); 
         } 
         outs.close(); 
    
    関連する問題