http.client Python 모듈로 다음 리디렉션

2898 단어 python
유감스럽게도 http.client Python 모듈을 사용하는 동안 자동 후속 리디렉션(3XX 상태)에 대한 구성이 없습니다.

나처럼 완고하고 여전히 모듈을 사용하고 싶다면 다음 리디렉션에 대한 스니펫이 있습니다.

#! /usr/bin/python3

from http.client import HTTPSConnection
from urllib.parse import urljoin

def get(host, url):
    print(f'GET {url}')

    connection = HTTPSConnection(host)
    connection.request('GET', url)

    response = connection.getresponse()
    location_header = response.getheader('location')

    if location_header is None:
        return response
    else:
        location = urljoin(url, location_header)
        return get(host, location)

response = get('en.wikipedia.org', '/api/rest_v1/page/random/summary')

print(response.read())

좋은 웹페이지 즐겨찾기