2009-02-08 6 views
2

C에서 헤더 또는 쓰기 함수에서 다운로드를 취소하려는 경우 -1을 반환합니다. pycurl에서 나는이 오류가 발생합니다헤더 함수에 pycurl 요청이 있습니까?

pycurl.error: invalid return value for write callback -1 17 

17이 의미하는 바를 잘 모릅니다. 그러나 정확하게 무엇을하지 않습니까? pycurl.c에서

답변

3

:

else if (PyInt_Check(result)) { 
    long obj_size = PyInt_AsLong(result); 
    if (obj_size < 0 || obj_size > total_size) { 
     PyErr_Format(ErrorObject, "invalid return value for write callback %ld %ld", (long)obj_size, (long)total_size); 
     goto verbose_error; 
    } 

이 17 의미는 TOTAL_SIZE입니다 -이 가능합니까? -1 (결과)은 콜백이 반환하는 값입니다.

+0

이렇게하면 콘솔에 인쇄 된 pycurl 오류가 발생하지 않고 헤더의 전송을 취소 할 수 있습니까? –

+0

불가능한 것 같습니다. 받아 들여진 것으로 표시 (BTW 나는 더 이상 이것을 필요 없다) –

1
import pycurl 
import StringIO 

c = pycurl.Curl() 
s = StringIO.StringIO() 
c.setopt(pycurl.URL, url) 
c.setopt(pycurl.HEADER, True) 
c.setopt(pycurl.NOBODY, True) 
c.setopt(pycurl.WRITEFUNCTION, s.write) 
c.perform() 

print(s.getvalue()) 
+0

일단 다운로드가 취소되면 나에게 더 이상 필요가 없다는 것을 알 수 없다. –

+0

@Nekmo, 당신은 pycurl.NOBODY 옵션에 밑줄을 그어 줘야합니다. 나는 같은 질문을하고 당신의 대답을 여러 번 보았지만 그것을 눈치 채지 못했다) –