2011-04-28 1 views
2

나는 아주 간단한 응용 프로그램을 쓰고 있습니다. 그것은 인터넷에서 파일을 다운로드하기로되어 있습니다. 테이블에 저장할 파일의 URL과 이름이 있습니다. 하지만 내 코드는 작동하지 않습니다.Google 도서에서 파일 다운로드

for (int i = 1; i < links.Length; i++) 
{ 
    Uri uri = new Uri(links[i]); 

    HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(uri); 
    webRequest.Method = "GET"; 

    HttpWebResponse webResponse = (HttpWebResponse)webRequest.GetResponse(); 

    Stream responseStream = webResponse.GetResponseStream(); 
    StreamReader responseStreamReader = new StreamReader(responseStream); 
    String result = responseStreamReader.ReadToEnd(); 

    StreamWriter w = new StreamWriter(savepath + names[i]); 
    w.Write(result); 
    w.Close(); 

    break; 
} 

예를 들어, URL : http://books.google.pl/books?id=yOz1ePt39WQC&pg=PA2&img=1&zoom=3&hl=pl&sig=ACfU3U0MDQtXGU_3YVqGvcsDiWLLcKh0KA&w=800&gbd=1

예 이름 : 002.png

파일은 PNG 이미지로 저장할 수 있지만 대신에 나는 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

둘째 qestion 시작 무언가를 얻을. 다운로드 할 때 HTTP 404 오류를 어떻게 발견합니까?

편집 : 나쁨. 내 링크가 잘못되었습니다. &amp;&으로 바꾼 다음 올바른 것입니다. 예 링크 (correctted) :

http://books.google.pl/books?id=yOz1ePt39WQC&pg=PA2&img=1&zoom=3&hl=pl&sig=ACfU3U0MDQtXGU_3YVqGvcsDiWLLcKh0KA&w=800&gbd=1

난 아직도 제대로 PNG 파일을 다운로드 할 수에도 불구하고. 그들은 열리지 않습니다. 그러나 적어도 그들은 HTML 페이지가 아닙니다. 문자열로 저장하려고 시도하는 것이 좋지 않다고 생각합니다. 하지만 내가 어떻게 할 수 있을지 모르겠다. 바이트 [] 등을 사용하는 것일까 요?

+2

수동으로 해당 URL로 이동하면 HTML 페이지로 이동합니다 ... –

+1

내 링크가 잘못되었음을 알았습니다. 나는 편집을했다. – Stephanie

답변

5

WebClient.DownloadFile을 사용해 보셨습니까?

string url = "http://books.google.pl/books?id=yOz1ePt39WQC&pg=PA2&img=1&zoom=3&hl=pl&sig=ACfU3U0MDQtXGU_3YVqGvcsDiWLLcKh0KA&w=800&gbd=1"; 
string file = "002.png"; 

WebClient wc = new WebClient(); 
wc.DownloadFile(url, file); 

은 002.png로 응용 프로그램 디렉토리에 이미지를 저장합니다.