Comments (6)
I do not understand what you are saying. What hack?
Ha, looks like we made the same conclusion here. What I meant regarding the "hack" was requiring the user to encode their string data as UTF-8 for the Content-Length header to be correctly initialized.
from requests.
I assume that it is incorrect to require the data to be encoded as UTF-8, so I will work on a fix that removes the need for this hack. @bruceadams
from requests.
I assume that it is incorrect to require the data to be encoded as UTF-8, so I will work on a fix that removes the need for this hack. @bruceadams
I do not understand what you are saying. What hack?
A Python string can contain Unicode characters. To send a Python string as the body of an HTTP request, the string needs to be encoded into bytes. UTF-8 is a common encoding (and I see signs of UTF-8 being assumed elsewhere in the Requests code). In the behavior I saw in the wild, Requests did, in fact, encode the request body as UTF-8.
from requests.
Ah! Your pull request lines up with how I thought this might be properly addressed! Nice! (I just created a similar pull request #6589.)
from requests.
Can I fix this by downgrading to a previous version? I don't want to (and some users probably cannot) change the code to convert to bytes before passing it to the request.
Also don't really get your fixes, the body is at some point converted to bytes (there is a body_to_chunks
in request.py) that also seems to set the content-length header? But that is just a side note, I'm not into the code, so just ignore it if I'm talking nonsense..
from requests.
Bytes are the language of the Internet regardless of whether you think that. Many things try to paper over that. The right thing is to typically send bytes that you know how they should be encoded but barring that, we should be always dealing with bytes internally. Now that we dropped 2.7 support, I'd support always encoding data parameters that are strs to bytes before doing anything else with them (e.g., calculating content length) internally
from requests.
Related Issues (20)
- the first response history url is incorrect HOT 1
- Links at docs site return 404 HOT 3
- I don't think the name of this function is appropriate, because the return value of this function is a ConnectionPool object, and the first sentence of the comment is also wrong, which makes it a huge difficulty for me to read!! HOT 2
- Unexpected `UnicodeError` on some URL HOT 2
- python requests.get() stuck HOT 1
- How to use multiple redundant hosts HOT 1
- sslv3 alert handshake failure HOT 1
- Refresh Test PyPi Package HOT 2
- How to get IP address of connected host after getting the response? HOT 1
- Unintended Leak Of Proxy-Authorization Header In Requests
- Kenneth Reitz, Take care of yourself. HOT 1
- [BUG] JSONDecodeError can't be deserialized - invalid JSON raises a BrokenProcessPool and crashes the entire process pool HOT 1
- Multipart/form-data requests creates mismatched boundaries between request body and headers HOT 1
- `params` might be misnamed? HOT 1
- Getting warning while running databricks cli command in azure devops HOT 1
- IPv6 address change for sequential gets HOT 2
- requests Session and pool timeout. HOT 1
- [BUG] pytest error in python:3.8- (only work in 3.7) because httpbin uses deprecated werkzeug function 'parse_authorization_header' HOT 2
- A HOT 1
- 2.31.0: pytest fails in `tests/test_requests.py::TestRequests::test_https_warnings` unit HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from requests.