Estoy tratando de hacer algo de automatización en un script de Python y me he encontrado con un problema. Estoy tratando de hacer una POST a un servidor.Pasando el carácter '+' en una solicitud POST en Python
url = 'http://www.example.com'
params = {'arg0': 'value', 'arg1': '+value'}
f = urllib.urlopen(url, urllib.urlencode(params))
print f.read()
me han hecho una captura de Wireshark de la operación navegador equivalente en el caso de la segunda arg, arg1
se pasa como +value
, sin embargo, cuando lo hago con Python la +
se cambia a %2B
, es decir
Line-based text data: application/x-www-form-urlencoded
arg0=value&arg1=%2Bvalue
cuando debería ser:
Line-based text data: application/x-www-form-urlencoded
arg0=value&arg1=+value
también he utilizado el módulo de peticiones y que parecen s hacer lo mismo.
url = 'http://www.example.com'
params = {'arg0': 'value', 'arg1': '+value'}
f = requests.post(url, params)
Google no es su amigo cuando se tiene un problema relacionado con '+', ya que parece ser un cajón de sastre para tantas otras cosas.
¿qué versión de solicitudes estás utilizando? – root
Hice una pip install solicitudes de hoy - 0.14.0 –
"Google no es tu amigo cuando tienes un problema relacionado con '+'" - Para buscar caracteres especiales, hay motores de búsqueda especiales como http://symbolhound.com/ – l4mpi