2016-06-28 11 views
-1

イメージのURLに何かしようとしているときにエラー403が表示されます(ファイルサイズを取得するかダウンロードしますか?イメージを表示しようとしているときにエラーが発生します。イメージをダウンロードしようとしたときにエラー403が表示されない

私は十分に明確だ願っていますが、必要であれば、これは問題となるURLの例です。

Image URL/Site show the image

私は素晴らしい作品のファイルサイズを取得するには、このコードを使用していますしかしないexempleのためにこのサイト上:cFrozenDeathで指摘したように

public void getFileSize(string uri) 
{ 
    try 
    { 
     waitGetSize = 0; 
     HttpWebRequest req = (HttpWebRequest)WebRequest.Create(uri); 
     req.Timeout = 5000; 
     req.Method = "HEAD"; 
     HttpWebResponse resp = (HttpWebResponse)req.GetResponse(); 
     imgSize = resp.ContentLength; 
     imgSizeKb = imgSize/1024; 
     waitGetSize = 1; 
    } 
    catch (Exception ex) 
    { 
     MetroMessageBox.Show(this, ex.Message, "Exception :", MessageBoxButtons.OK, MessageBoxIcon.Error); 
    } 
} 

、私はHEADリクエストを使用したので、私は、まったく同じ効果にGETリクエストを使用してみました。私が望む要求タイプを単に述べないと同じ結果になります。

ファイルサイズを取得する方法や、少なくともブラウザで開いたときにファイルが表示されていることを知っているファイルをダウンロードする方法はありますか?

+1

あなたはイメージ –

+1

をダウンロードする権限を持っていないようですね。 –

+2

ブラウザを使用するときは、HEADリクエストではなくGETリクエストを送信します。大きな違いがあります。 –

答えて

0

ウェブサイトからコンテンツをスクラップする場合は、ウェブブラウザを模倣する必要があります。

場合によっては、最初にウェブサイトに着陸したときに取得する必要がある場合や、ウェブサーバーにリソースにリンクしているページを伝える必要がある場合があります。特定の画像が273073バイトの長さを有すること

public void getFileSize(string uri) 
{ 
     HttpWebRequest req = (HttpWebRequest)WebRequest.Create(uri); 
     // which page do we want that server to believe we call this from 
     req.Referer = "http://www.webtoons.com/"; 

     req.Timeout = 5000; 
     req.Method = "GET"; // or do a HEAD  
     HttpWebResponse resp = (HttpWebResponse)req.GetResponse(); 
     // rest omitted 
} 

:あなたがヘッダにRefererを提供する必要があり、この場合

コンテンツをスクレイプすることは、特定のウェブサイトの利用規約に違反する可能性があることに注意してください。違法な行為をしないようにしてください。

+0

詳細な返信をありがとう! また、ToSに違反していないかどうかを確認します。 ありがとうございます! –

関連する問題