2012-02-16 1 views
0

curl을 사용하여 다운로드를 수행하면 예상대로 작동합니다. 다운로드 헤더를 시작하면 내 헤더 기능으로, 데이터는 쓰기 파일로 전송됩니다.오류 발생시 액세스 오류가 발생했을 때 호출되는 curl - headerfunction 및 write 함수

예를 들어, 오류 메시지 액세스가 거부 된 경우 오류 메시지 텍스트가 헤더 함수와 writeFile 모두로 전송됩니다. 그래서 재시도를 할 때 크기가 1k (오류 메시지) 인 파일을 발견하고 끝까지 쓰려고합니다.

이것은 예상되는 동작입니까? (두 기능 전송 오류 텍스트)

curl_easy_setopt(session, CURLOPT_HEADERFUNCTION, postCallback); 
curl_easy_setopt(session, CURLOPT_WRITEFUNCTION,writeFile); 
curl_easy_setopt(session, CURLOPT_WRITEDATA, &downloadContent); 
lastCURLCode = curl_easy_perform(session); 
curl_easy_getinfo (session, CURLINFO_RESPONSE_CODE, &lastHttpResponse); 
+0

서버의 "액세스 거부"페이지의 동일한 내용이 두 기능 모두로 보내지고 있다는 말입니까? 또는 헤더 함수는 오류 페이지의 헤더 만 수신하고 쓰기 함수는 오류 페이지의 내용 만 수신합니까? 나는 후자를 기대할 것이다. –

답변

0

헤더와 바디 콜백에 상관없이 어떤 HTTP 당신이 CURLOPT_FAILONERROR을 설정하지 않는 한 수신 응답 헤더와 콘텐츠를합니다.

+0

감사합니다. 오류 메시지의 본문이 데이터 콜백에 포함되어 있다고 생각합니다. – user1127081

관련 문제