Twisted ProxyAgent: 일반 HTTP를 위한 Basic 인증
바이트 값 요청 헤더를 사용해 Twisted ProxyAgent를 통해 인증된 일반 HTTP 요청을 보냅니다.
ProxyAgent는 전달받은 endpoint를 통해 연결합니다. 일반 HTTP 요청과 Basic 인증을 받아들이는 프록시라면, 해당 요청의 Proxy-Authorization 헤더에 프록시 로그인을 넣습니다.
import base64
from twisted.internet.endpoints import TCP4ClientEndpoint
from twisted.web.client import ProxyAgent
from twisted.web.http_headers import Headers
endpoint = TCP4ClientEndpoint(reactor, 'proxy.example', 8080,
timeout=5)
agent = ProxyAgent(endpoint, reactor=reactor)
token = base64.b64encode(b'alice:REPLACE_WITH_PROXY_PASSWORD')
headers = Headers({b'Proxy-Authorization': [b'Basic ' + token]})
pending = agent.request(b'GET', b'http://example.com/', headers)이 단편은 애플리케이션에 이미 reactor가 있다고 가정합니다. 메서드, URI, 예시의 헤더 데이터는 바이트 값을 사용합니다. 실제 자격 증명은 애플리케이션의 자격 증명 원본에 보관하십시오. 자리 표시자는 헤더가 어떻게 만들어지는지만 보여 줍니다. Base64는 인코딩일 뿐이므로 기밀성은 이를 전달하는 연결에 달려 있습니다.
반환된 Deferred는 응답 객체를 줍니다. 그 객체를 받는다고 해서 응답 본문이 수집되지는 않습니다. 문서화된 본문 읽기 인터페이스로 읽고 비동기 실패를 처리하십시오. endpoint의 시간 제한은 연결 수립을 제한하며, 응답의 전체 수명을 제한하지는 않습니다.
예제는 의도적으로 HTTP 대상을 사용합니다. URI 스킴만 바꾼다고 해서 HTTPS를 위한 CONNECT 협상이 추가되지는 않습니다.