[issue38831] urllib.request header characters being changed to lowercase

2019-11-17 Thread Eric V. Smith


Eric V. Smith  added the comment:

Yes, this does seem to be a duplicate. I'll close this.

--
resolution:  -> duplicate
stage:  -> resolved
status: open -> closed

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue38831] urllib.request header characters being changed to lowercase

2019-11-17 Thread Martin Panter


Martin Panter  added the comment:

I suggest to keep the discussion with Issue 12455

--
nosy: +martin.panter
superseder:  -> urllib2 forces title() on header names, breaking some requests

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue38831] urllib.request header characters being changed to lowercase

2019-11-17 Thread Eric V. Smith


Eric V. Smith  added the comment:

Well, the standard says they're case insensitive: 
https://tools.ietf.org/html/rfc7230#section-3.2

Forcing the case on the header item seems quite deliberate: 
https://github.com/python/cpython/blob/master/Lib/urllib/request.py#L399
I assume that the .capitalize call is made in order to normalize headers, in 
case another header with the same name but different capitalization is added.

I can't recommend making a code change here. We're compliant with the standard, 
and any change would no doubt break someone's code.

I do agree that it might be worth documenting.

It's unfortunate that the caller can't specify an exact string they want to use 
(in order to handle broken servers), but that's the way it's been for ages.

--
nosy: +eric.smith

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue38831] urllib.request header characters being changed to lowercase

2019-11-17 Thread rosoroso


New submission from rosoroso :

When using the urllib request headers, I've found that certain letters are 
converted to their lowercase versions whilst part of a request object (H->h in 
the example, see at bottom).
Whilst this should not usually be an issue (Since headers are not supposed to 
be case sensitive), I've found an API for which that is not the case.

Options for fixing this could include, not changing the case of characters in 
header fields or updating the docs to include a warning of this behaviour 
(https://docs.python.org/3/library/urllib.request.html)

import urllib.request
header = {"Test-Header":"Value"}
requestobject = urllib.request.Request("https://www.example.com",None,header)
print ("Original header is:", header)
print ("Request header is:", requestobject.header_items())

'''
Orginal header is: {'Test-Header': 'Value'}
Request header is: [('Test-header', 'Value')]
Version was Python 3.6.5
'''

--
messages: 356813
nosy: rosoroso
priority: normal
severity: normal
status: open
title: urllib.request header characters being changed to lowercase
type: behavior
versions: Python 3.6

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com