рдЕрдиреБрд░реЛрдз рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рд╣реИред
рдЬрдм рдореИрдВ рдЪреАрдиреА рд╡рд░реНрдг рд╡рд╛рд▓реЗ рдбреЗрдЯрд╛ рдХреЛ рдкреЛрд╕реНрдЯ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реВрдВ, рддреЛ рдпрд╣ рдЕрдкрд╡рд╛рдж рдлреЗрдВрдХ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
Traceback (most recent call last):
File "X/threading.py", line 639, in _bootstrap_inner
File "X/threading.py", line 596, in run
File "C:\Users\Administrator\Dropbox\Sublime3056\Data\Packages\SublimeApex\salesforce\api.py", line 546, in execute_anonymous
headers=headers)
File "C:\Users\Administrator\Dropbox\Sublime3056\Data\Packages\SublimeApex\requests\api.py", line 88, in post
return request('post', url, data=data, **kwargs)
File "C:\Users\Administrator\Dropbox\Sublime3056\Data\Packages\SublimeApex\requests\api.py", line 44, in request
return session.request(method=method, url=url, **kwargs)
File "C:\Users\Administrator\Dropbox\Sublime3056\Data\Packages\SublimeApex\requests\sessions.py", line 338, in request
resp = self.send(prep, **send_kwargs)
File "C:\Users\Administrator\Dropbox\Sublime3056\Data\Packages\SublimeApex\requests\sessions.py", line 441, in send
r = adapter.send(request, **kwargs)
File "C:\Users\Administrator\Dropbox\Sublime3056\Data\Packages\SublimeApex\requests\adapters.py", line 292, in send
timeout=timeout
File "C:\Users\Administrator\Dropbox\Sublime3056\Data\Packages\SublimeApex\requests\packages\urllib3\connectionpool.py", line 428, in urlopen
body=body, headers=headers)
File "C:\Users\Administrator\Dropbox\Sublime3056\Data\Packages\SublimeApex\requests\packages\urllib3\connectionpool.py", line 280, in _make_request
conn.request(method, url, **httplib_request_kw)
File "X/http/client.py", line 1049, in request
File "X/http/client.py", line 1086, in _send_request
UnicodeEncodeError: 'latin-1' codec can't encode characters in position 1632-1633: ordinal not in range(256)
рдлрд╝рд╛рдЗрд▓ "X/http/client.py"
рдХреНрдпрд╛ рдЖрдкрдиреЗ X
рд▓рд┐рдЦрд╛ рдерд╛ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдПрдХ рд╕реНрдерд╛рдиреАрдп рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдкрде рд╣реИ? рдпрджрд┐ рдРрд╕рд╛ рд╣реИ, рддреЛ рдЖрдкрдХреА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╕рдВрд░рдЪрдирд╛ urllib3 рдХреЛ рднреНрд░рдорд┐рдд рдХрд░ рд╕рдХрддреА рд╣реИред рдпрджрд┐ рдирд╣реАрдВ, рддреЛ рдЖрдкрдХреЛ рд╢рд╛рдпрдж рдЗрд╕реЗ bugs.python.org рдкрд░ рдЙрдард╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдРрд╕рд╛ рдХреБрдЫ рдирд╣реАрдВ рд╣реИ рдЬреЛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рд╕рдВрднрд╛рд▓рдирд╛ рдЪрд╛рд╣рд┐рдПред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ httplib
рд╕реЗ рдмрдврд╝ рд░рд╣рд╛ рд╣реИ (рдпрд╛ http
рдкрд╛рдпрдерди 3 рдкрд░ рдЬреЛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ)ред
@sigmavirus24 ,
рдореИрдВрдиреЗ рдЙрджрд╛рддреНрдд рдкреНрд▓рдЧрдЗрди рдореЗрдВ рдЕрдиреБрд░реЛрдзреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛, рдпрджрд┐ рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдХрдерди рдореЗрдВ рд╕рд╛рдмреБрди_рдмреЙрдбреА рдореЗрдВ рдХреЛрдИ рдЪреАрдиреА рд╡рд░реНрдг рдирд╣реАрдВ рд╣реИ, рддреЛ рдХреЛрдИ рдЕрдкрд╡рд╛рдж рдирд╣реАрдВ рд╣реЛрдЧрд╛ред
response = requests.post(self.apex_url, soap_body, verify=False, headers=headers)
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЬрдм рддрдХ рдХрд┐ рдЖрдк Sublime Apex рдХреЗ рдХрд┐рд╕реА рднрд┐рдиреНрди рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдЙрдирдХреЗ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рднрдВрдбрд╛рд░ рдореЗрдВ рдирд╣реАрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЕрдиреБрд░реЛрдз _not_ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рд╣реИ, рдпрд╣ рд╕рдВрд╕реНрдХрд░рдг 1.2.3 рд╣реИред рдХреНрдпрд╛ рдЖрдк рдореБрдЭреЗ рдмрддрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЖрдк рдЙрджрд╛рддреНрдд рдкрд╛рда рдХреЗ рдХрд┐рд╕ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ?
рдпрд╣ рдЙрджрд╛рддреНрдд рдкрд╛рда рд╣реИ 3056
рддреЛ, рдПрд╕рдЯреА 3, рд▓реЗрдХрд┐рди рд╕рдмрд╕реЗ рд╣рд╛рд▓рд┐рдпрд╛ рд╕рдВрд╢реЛрдзрди рдирд╣реАрдВред рдареАрдХ рд╣реИ, рдпрд╣ рд╣рдореЗрдВ рдХреБрдЫ рджреЗрддрд╛ рд╣реИред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, Sublime Text 3 Python 3.3 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, Python 2.7 рдХрд╛ рдирд╣реАрдВ (рдЬреЛ Sublime Text 2 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ)ред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рд╕рдмреНрд▓рд┐рдореЗ рдПрдкреЗрдХреНрд╕ рдореЗрдВ рд╕рднреА рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдпреВрдирд┐рдХреЛрдб рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рд╣реИрдВред
рдпрджрд┐ рдЖрдк Python 3.3 http.client
рдлрд╝рд╛рдЗрд▓ рдЦреЛрд▓рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдкрд╛рдПрдВрдЧреЗ рдХрд┐ _send_request()
рдлрд╝рдВрдХреНрд╢рди рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:
# Honor explicitly requested Host: and Accept-Encoding: headers.
header_names = dict.fromkeys([k.lower() for k in headers])
skips = {}
if 'host' in header_names:
skips['skip_host'] = 1
if 'accept-encoding' in header_names:
skips['skip_accept_encoding'] = 1
self.putrequest(method, url, **skips)
if body is not None and ('content-length' not in header_names):
self._set_content_length(body)
for hdr, value in headers.items():
self.putheader(hdr, value)
if isinstance(body, str):
# RFC 2616 Section 3.7.1 says that text default has a
# default charset of iso-8859-1.
body = body.encode('iso-8859-1')
self.endheaders(body)
рдЕрдм, ISO-8859-1 рд▓реИрдЯрд┐рди-1 рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрдкрдирд╛рдо рд╣реИ, рдЬреЛ рд╡рд╣ рдХреЛрдбреЗрдХ рд╣реИ рдЬрд┐рд╕рд╕реЗ рд╣рдо рдкрд░реЗрд╢рд╛рди рд╣реИрдВред рд╣рдореЗрдВ рдЬреЛ рд╕рдорд╕реНрдпрд╛ рдорд┐рд▓реА рд╣реИ, рд╡рд╣ рдпрд╣ рд╣реИ рдХрд┐ рд╕рдмреНрд▓рд┐рдореЗ рдПрдкреЗрдХреНрд╕ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рдПрдХ рдпреВрдирд┐рдХреЛрдб рд╕реНрдЯреНрд░рд┐рдВрдЧ рдмреЙрдбреА рдкреНрд░рджрд╛рди рдХрд░ рд░рд╣рд╛ рд╣реИ, рдЬрд┐рд╕реЗ httplib рдХреЛ рдмрд╛рдЗрдЯреНрд╕ рдореЗрдВ рдПрдиреНрдХреЛрдб рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред RFC 2616 рд╕реЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд▓реЗрддреЗ рд╣реБрдП, рдпрд╣ рдирд┐рд╖реНрдХрд░реНрд╖ рдирд┐рдХрд╛рд▓рд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдЖрдк рд▓реИрдЯрд┐рди -1 рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдореЗрдВ рдХреЛрдИ рдЪреАрдиреА рд╡рд░реНрдг рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рд╣реИред рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ, рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддреА рд╣реИ, рдФрд░ рдЖрдкрдХреЛ рдкреНрд░рд╢реНрди рдореЗрдВ рдЕрдкрд╡рд╛рдж рдорд┐рд▓рддрд╛ рд╣реИред
рдпрд╣ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ рд╕рдмреНрд▓рд┐рдореЗ рдПрдкреЗрдХреНрд╕ рд╣реЗрдбрд░ рдореЗрдВ рджрд╛рд╡рд╛ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдпреВрдЯреАрдПрдл -8 рдПрдиреНрдХреЛрдбреЗрдб рдбреЗрдЯрд╛ (рдЬреЛ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЭреВрда рд╣реИ) рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рднреЗрдЬрддрд╛ рд╣реИ, рд╕рдмреНрд▓рд┐рдореЗ рдПрдкреЗрдХреНрд╕ рдЗрд╕реЗ рднреЗрдЬрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдпреВрдЯреАрдПрдл -8 рдХреЗ рд░реВрдк рдореЗрдВ рдбреЗрдЯрд╛ рдПрдиреНрдХреЛрдб рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдбреЗрдЯрд╛ рднреЗрдЬрдиреЗ рд╡рд╛рд▓реА рдХреЛрдИ рднреА рд▓рд╛рдЗрди (рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ salesforce/api.py
рдХреА рд▓рд╛рдЗрди 545) рдХреЛ рдЗрд╕ рддрд░рд╣ рдкрдврд╝рдирд╛ рдЪрд╛рд╣рд┐рдП:
response = requests.post(self.apex_url, soap_body.encode('utf-8'), verify=False, headers=headers)
рдХрд┐рд╕реА рдФрд░ рдХреЗ рд▓рд┐рдП рдЬреЛ рдореЗрд░реЗ рдирд┐рджрд╛рди рдХреА рдкреБрд╖реНрдЯрд┐ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ, рдпрд╣рд╛рдВ рдПрдХ рддреНрд╡рд░рд┐рдд рдирдореВрдирд╛ рдХреЛрдб рд╣реИ рдЬреЛ рд╕рдорд╕реНрдпрд╛ рдХреА рдкреБрд╖реНрдЯрд┐ рдХрд░рддрд╛ рд╣реИ:
a = "\u13E0\u19E0\u1320"
a.encode('latin1') # Throws UnicodeEncodeError, proves that this can't be expressed in ISO-8859-1.
a.encode('utf-8') # Totally fine.
r = requests.post('http://httpbin.org/post', data=a) # Using unicode string, throws UnicodeEncodeError blaming Latin1.
r = requests.post('http://httpbin.org/post', data=a.encode('utf-8')) # Works fine.
рдЗрд╕реЗ рд╣рдорд╛рд░реЗ рд╕рд╛рде рдЙрдард╛рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рд▓реЗрдХрд┐рди рдпрд╣ рдЕрдиреБрд░реЛрдз рдмрдЧ рдирд╣реАрдВ рд╣реИред =)
рдзрдиреНрдпрд╡рд╛рджред
r = request.post(' http://httpbin.org/post ', data=a.encode('utf-8'))
рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА,
рдзрдиреНрдпрд╡рд╛рдж!
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рддреЛ, рдПрд╕рдЯреА 3, рд▓реЗрдХрд┐рди рд╕рдмрд╕реЗ рд╣рд╛рд▓рд┐рдпрд╛ рд╕рдВрд╢реЛрдзрди рдирд╣реАрдВред рдареАрдХ рд╣реИ, рдпрд╣ рд╣рдореЗрдВ рдХреБрдЫ рджреЗрддрд╛ рд╣реИред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, Sublime Text 3 Python 3.3 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, Python 2.7 рдХрд╛ рдирд╣реАрдВ (рдЬреЛ Sublime Text 2 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ)ред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рд╕рдмреНрд▓рд┐рдореЗ рдПрдкреЗрдХреНрд╕ рдореЗрдВ рд╕рднреА рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдпреВрдирд┐рдХреЛрдб рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рд╣реИрдВред
рдпрджрд┐ рдЖрдк Python 3.3
http.client
рдлрд╝рд╛рдЗрд▓ рдЦреЛрд▓рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдкрд╛рдПрдВрдЧреЗ рдХрд┐_send_request()
рдлрд╝рдВрдХреНрд╢рди рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:рдЕрдм, ISO-8859-1 рд▓реИрдЯрд┐рди-1 рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрдкрдирд╛рдо рд╣реИ, рдЬреЛ рд╡рд╣ рдХреЛрдбреЗрдХ рд╣реИ рдЬрд┐рд╕рд╕реЗ рд╣рдо рдкрд░реЗрд╢рд╛рди рд╣реИрдВред рд╣рдореЗрдВ рдЬреЛ рд╕рдорд╕реНрдпрд╛ рдорд┐рд▓реА рд╣реИ, рд╡рд╣ рдпрд╣ рд╣реИ рдХрд┐ рд╕рдмреНрд▓рд┐рдореЗ рдПрдкреЗрдХреНрд╕ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рдПрдХ рдпреВрдирд┐рдХреЛрдб рд╕реНрдЯреНрд░рд┐рдВрдЧ рдмреЙрдбреА рдкреНрд░рджрд╛рди рдХрд░ рд░рд╣рд╛ рд╣реИ, рдЬрд┐рд╕реЗ httplib рдХреЛ рдмрд╛рдЗрдЯреНрд╕ рдореЗрдВ рдПрдиреНрдХреЛрдб рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред RFC 2616 рд╕реЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд▓реЗрддреЗ рд╣реБрдП, рдпрд╣ рдирд┐рд╖реНрдХрд░реНрд╖ рдирд┐рдХрд╛рд▓рд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдЖрдк рд▓реИрдЯрд┐рди -1 рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдореЗрдВ рдХреЛрдИ рдЪреАрдиреА рд╡рд░реНрдг рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рд╣реИред рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ, рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддреА рд╣реИ, рдФрд░ рдЖрдкрдХреЛ рдкреНрд░рд╢реНрди рдореЗрдВ рдЕрдкрд╡рд╛рдж рдорд┐рд▓рддрд╛ рд╣реИред
рдпрд╣ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ рд╕рдмреНрд▓рд┐рдореЗ рдПрдкреЗрдХреНрд╕ рд╣реЗрдбрд░ рдореЗрдВ рджрд╛рд╡рд╛ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдпреВрдЯреАрдПрдл -8 рдПрдиреНрдХреЛрдбреЗрдб рдбреЗрдЯрд╛ (рдЬреЛ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЭреВрда рд╣реИ) рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рднреЗрдЬрддрд╛ рд╣реИ, рд╕рдмреНрд▓рд┐рдореЗ рдПрдкреЗрдХреНрд╕ рдЗрд╕реЗ рднреЗрдЬрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдпреВрдЯреАрдПрдл -8 рдХреЗ рд░реВрдк рдореЗрдВ рдбреЗрдЯрд╛ рдПрдиреНрдХреЛрдб рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдбреЗрдЯрд╛ рднреЗрдЬрдиреЗ рд╡рд╛рд▓реА рдХреЛрдИ рднреА рд▓рд╛рдЗрди (рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ
salesforce/api.py
рдХреА рд▓рд╛рдЗрди 545) рдХреЛ рдЗрд╕ рддрд░рд╣ рдкрдврд╝рдирд╛ рдЪрд╛рд╣рд┐рдП:рдХрд┐рд╕реА рдФрд░ рдХреЗ рд▓рд┐рдП рдЬреЛ рдореЗрд░реЗ рдирд┐рджрд╛рди рдХреА рдкреБрд╖реНрдЯрд┐ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ, рдпрд╣рд╛рдВ рдПрдХ рддреНрд╡рд░рд┐рдд рдирдореВрдирд╛ рдХреЛрдб рд╣реИ рдЬреЛ рд╕рдорд╕реНрдпрд╛ рдХреА рдкреБрд╖реНрдЯрд┐ рдХрд░рддрд╛ рд╣реИ:
рдЗрд╕реЗ рд╣рдорд╛рд░реЗ рд╕рд╛рде рдЙрдард╛рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рд▓реЗрдХрд┐рди рдпрд╣ рдЕрдиреБрд░реЛрдз рдмрдЧ рдирд╣реАрдВ рд╣реИред =)