HTTP requires that lines end with \r\n, but some buggy servers (including
news.ycombinator.com) just use \n. Libcurl tolerates this and sends the
line as-is to the header callback, so we need to be prepared to handle
either form.
def _curl_header_callback(headers, header_line):
+ # header_line as returned by curl includes the end-of-line characters.
+ header_line = header_line.strip()
if header_line.startswith("HTTP/"):
headers.clear()
return
- if header_line == "\r\n":
+ if not header_line:
return
headers.parse_line(header_line)