사용 목적
URL 문자열 중, path, query 등에서 url encoding이 실행되면 안되는 문자가 존재 할 경우 사용 가능
- path 예: /login/index.php 등
- query 예: ?a=1&b=2&c=a:3,b:'d' 등
방법
import requests
DO_NOT_ENCODING = '${}|'
for c in DO_NOT_ENCODING:
requests.urllib3.util.url.PATH_CHARS.add(c) # path 인 경우
requests.urllib3.util.url.QUERY_CHARS.add(c) # query 인 경우
s = requests.Session()
r = requests.Request(
'POST',
url,
data=data,
headers=headers,
)
pr = r.prepare()
pr.url = url + '?' + query
rs = s.send(pr, verify=False)
...
주의: urllib3 버전에 따라 다른것으로 보임. github에는 _PATH_CHARS, _QUERY_CHARS
로 되어 있음