2016-06-28 1 views
-1

파일의 크기를 가져 오거나 다운로드해도 이미지의 URL에는 아무런 변화가 없지만 403 오류가 발생합니다. 이미지를 표시하는 동안 오류가 발생합니다.이미지를 다운로드하려고 시도하는 중 오류 403이 발생합니다.

는 내가 충분히 명확 해요 희망하지만, 필요가있을 경우이 URL 포즈 문제의 예입니다

Image URL/Site show the image

나는 위대한 작품을 파일 크기를 얻기 위해이 코드를 사용하고는 하지만 exemple이 사이트에 :

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); 
    } 
} 

으로 cFrozenDeath 지적, 나는 HEAD 요청을 사용, 그래서 나는 똑같은 효과에 GET 요청을 사용했습니다. 내가 원하는 요청 유형을 명시하지 않고 동일한 결과가 표시됩니다.

그래서 파일 크기를 얻거나 적어도 브라우저에서 열 때 확인 된 파일을 다운로드하는 방법이 있습니까?

+1

당신은 이미지 –

+1

을 다운로드하거나 로컬에서 할 권한이 없습니다. –

+2

브라우저를 사용할 때 HEAD 요청이 아닌 GET 요청을 보냅니다. 엄청난 차이가 있습니다. –

답변

0

웹 사이트의 콘텐츠를 다룰 때 웹 브라우저를 모방해야합니다.

처음에는 웹 사이트에 착륙 할 때 제공하거나 유지해야 할 때가 있습니다. 때때로 웹 서버에 자원에 연결된 페이지를 알려야 할 수도 있습니다. 이 경우

당신은 헤더에 Referer를 제공해야합니다 : 특정 이미지가 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 
} 

있다.

콘텐츠를 스크랩하는 것은 특정 웹 사이트의 서비스 약관에 위배 될 수 있습니다. 불법적 인 일을하지 않게하십시오.

+0

답장을 보내 주셔서 감사합니다! 나는 또한 ToS와 맞지 않는지 점검 할 것입니다. 감사합니다. –

관련 문제