Opened 7 years ago

Closed 7 years ago

Last modified 7 years ago

#27725 closed Bug (needsinfo)

requests.post fail inside of django shell but not python shell

Reported by: paulfab Owned by: nobody
Component: Uncategorized Version: 1.10
Severity: Normal Keywords: request fails
Cc: Triage Stage: Unreviewed
Has patch: no Needs documentation: no
Needs tests: no Patch needs improvement: no
Easy pickings: no UI/UX: no

Description (last modified by paulfab)

When I execute :
requests.post("https://slack.com/api/chat.postMessage", data= {"channel": "maison"})
it fails in the django shell (python manage.py shell) with the error :

InvalidCodepoint: Codepoint U+002A at position 1 of u'*' not allowed

but it doesnt fail in the python shell
So this tells me it is probable something Django related
It was working before, and the only thing I changed is that I updated the SSL certificate of my server

Thanks

complete trace of the error is :

Traceback (most recent call last):
  File "<console>", line 1, in <module>
  File "/usr/lib/python2.7/dist-packages/requests/api.py", line 107, in post
    return request('post', url, data=data, json=json, **kwargs)
  File "/usr/lib/python2.7/dist-packages/requests/api.py", line 53, in request
    return session.request(method=method, url=url, **kwargs)
  File "/usr/lib/python2.7/dist-packages/requests/sessions.py", line 468, in request
    resp = self.send(prep, **send_kwargs)
  File "/usr/lib/python2.7/dist-packages/requests/sessions.py", line 576, in send
    r = adapter.send(request, **kwargs)
  File "/usr/lib/python2.7/dist-packages/requests/adapters.py", line 376, in send
    timeout=timeout
  File "/usr/local/lib/python2.7/dist-packages/urllib3/connectionpool.py", line 594, in urlopen
    chunked=chunked)
  File "/usr/local/lib/python2.7/dist-packages/urllib3/connectionpool.py", line 350, in _make_request
    self._validate_conn(conn)
  File "/usr/local/lib/python2.7/dist-packages/urllib3/connectionpool.py", line 833, in _validate_conn
    conn.connect()
  File "/usr/local/lib/python2.7/dist-packages/urllib3/connection.py", line 324, in connect
    cert = self.sock.getpeercert()
  File "/usr/local/lib/python2.7/dist-packages/urllib3/contrib/pyopenssl.py", line 312, in getpeercert
    'subjectAltName': get_subj_alt_name(x509)
  File "/usr/local/lib/python2.7/dist-packages/urllib3/contrib/pyopenssl.py", line 185, in get_subj_alt_name
    for name in ext.get_values_for_type(x509.DNSName)
  File "/usr/local/lib/python2.7/dist-packages/urllib3/contrib/pyopenssl.py", line 141, in _dnsname_to_stdlib
    name = idna.encode(name)
  File "/usr/lib/python2.7/dist-packages/idna/core.py", line 354, in encode
    result.append(alabel(label))
  File "/usr/lib/python2.7/dist-packages/idna/core.py", line 275, in alabel
    check_label(label)
  File "/usr/lib/python2.7/dist-packages/idna/core.py", line 252, in check_label
    raise InvalidCodepoint('Codepoint {0} at position {1} of {2} not allowed'.format(_unot(cp_value), pos+1, repr(label)))
InvalidCodepoint: Codepoint U+002A at position 1 of u'*' not allowed

Change History (9)

comment:1 by paulfab, 7 years ago

Description: modified (diff)

comment:2 by paulfab, 7 years ago

Description: modified (diff)

comment:3 by Tim Graham, 7 years ago

Resolution: needsinfo
Status: newclosed

You'll need to tell us where the issue is. I don't see anything obvious indicating that Django is at fault.

comment:4 by paulfab, 7 years ago

Well
I execute the same line : requests.post("​https://slack.com/api/chat.postMessage", data= {"channel": "maison"})
In both the django shell 'python manage.py shell' and the python shell 'python', and it only fails in the first one,
so this is django shell related

comment:5 by paulfab, 7 years ago

Resolution: needsinfo
Status: closednew

comment:6 by Tim Graham, 7 years ago

Please tell us where the problem is rather than asking us to debug the issue. Looking at the traceback doesn't indicate why Django is at fault.

comment:7 by Simon Charette, 7 years ago

Resolution: needsinfo
Status: newclosed

manage.py shell uses iPython or bpython if available in your environment. Is it the case here?

Else it could be caused by some code your application monkey patches but as Tim pointed out nothing seems to indicate Django is at fault here.

comment:8 by paulfab, 7 years ago

The fact is that my application is very simple there is no monkey patch. I just wanted to know in what sense django shell is different than python shell, ipython or bpython could be the reason, but it is not available on my system.

Maybe Django has nothing to do with that, but that is his way to handle https that broke my request.

Thanks anyway

comment:9 by Tim Graham, 7 years ago

You can try the channels linked at TicketClosingReasons/UseSupportChannels for ways to get help.

Note: See TracTickets for help on using tickets.
Back to Top