Post request and encoding

Hernán De Angelis variablestarlight at gmail.com
Mon Nov 2 04:06:10 EST 2020


Hi everyone,

I am writing a program that sends a post request to a server. The post 
request may include keywords with Swedish characters (åöä).

I noticed that requests that include strings without those characters 
return a useful expected response. On the other hand, posts including 
those characters return an 'empty' response. However, if I save that 
same request to a file and send it using wget I do get a useful 
response. This suggests to me that the problem should be in how the post 
is sent or processed before being sent and not in how it is generated.

My request has the form:

header = {'Content-type':'application/xml', 'charset':'utf-8'}
response = requests.post(server, data=request, headers=header)

I have tried of course adding

request.encode('utf-8')

before sending the request but it has not lead to a different result.

I have spent several hours trying to understand whats going on here. I 
thought at first that this had to do with an issue described here: 
https://github.com/psf/requests/issues/5560 but apparently that issue 
was closed as it was deemed to be unrelated to the requests library.


Has anyone experienced this before? Is there something obvious I am 
missing here?

I am not new to programming but relatively new to Python, so bear with 
me please.


Thanks in advance

/H.


If it is of any use, I post the following too:

python3 -m requests.help
{
"chardet": {
"version": "3.0.4"
},
"cryptography": {
"version": "3.1.1"
},
"idna": {
"version": "2.10"
},
"implementation": {
"name": "CPython",
"version": "3.8.5"
},
"platform": {
"release": "5.9.1-1-default",
"system": "Linux"
},
"pyOpenSSL": {
"openssl_version": "1010108f",
"version": "19.1.0"
},
"requests": {
"version": "2.24.0"
},
"system_ssl": {
"version": "1010108f"
},
"urllib3": {
"version": "1.25.10"
},
"using_pyopenssl": true
}



More information about the Python-list mailing list