POST 数据中的 Unicode 替补字符导致异常
import requests requests.version '2.26.0'
requests.post('https://example.invalid', data={'name': 'test\udced\udcb3\udc83.pdf'}) Traceback (most recent call last): File "", line 1, in File "/home/user/.local/lib/python3.7/site-packages/requests/api.py", line 117, in post return request('post', url, data=data, json=json, **kwargs) File "/home/user/.local/lib/python3.7/site-packages/requests/api.py", line 61, in request return session.request(method=method, url=url, **kwargs) File "/home/user/.local/lib/python3.7/site-packages/requests/sessions.py", line 528, in request prep = self.prepare_request(req) File "/home/user/.local/lib/python3.7/site-packages/requests/sessions.py", line 466, in prepare_request hooks=merge_hooks(request.hooks, self.hooks), File "/home/user/.local/lib/python3.7/site-packages/requests/models.py", line 319, in prepare self.prepare_body(data, files, json) File "/home/user/.local/lib/python3.7/site-packages/requests/models.py", line 515, in prepare_body body = self._encode_params(data) File "/home/user/.local/lib/python3.7/site-packages/requests/models.py", line 104, in _encode_params v.encode('utf-8') if isinstance(v, str) else v)) UnicodeEncodeError: 'utf-8' codec can't encode characters in position 4-6: surrogates not allowed
内容来源: psf/requests