[Tutor] + converted to 25 in http string
Kent Johnson
kent37 at tds.net
Tue Apr 24 14:55:22 CEST 2007
govind goyal wrote:
> Hi,
>
> I am using http to automate my Access point(AP) configuration where I
> sent following strings to AP server through script.
>
> params =
> urllib.urlencode({'WRegion':"USA",'ssid':"wifi",'ap':"ap",'ssid_enable':"ssid_enable",*'wire_mode':"b+only",*
> 'w_channel':6,'lan_ac':"everyone",'int_ac':"everyone"})
>
> Above string I captured using a tool ethereal and then implementing this
> in my script.
> But the problem is that when I run this script all configurations in AP
> are OK except the parameter marked as bold in above string.
'+' is not a valid character in parameters so it is escaped to %2B by
urlencode:
In [10]: import urllib
In [11]: params =
urllib.urlencode({'WRegion':"USA",'ssid':"wifi",'ap':"ap",'ssid_enable':"ssid_enable",'wire_mode':"b+only",
'w_channel':6,'lan_ac':"everyone",'int_ac':"everyone"})
In [12]: params
Out[12]:
'ssid=wifi&ssid_enable=ssid_enable&ap=ap&int_ac=everyone&WRegion=USA&w_channel=6&lan_ac=everyone&wire_mode=b%2Bonly'
> I used the same tool ethereal to see what string is actually passing to
> Access point while I run my script and I got following:
>
> params =
> urllib.urlencode({'WRegion':"USA",'ssid':"wifi",'ap':"ap",'ssid_enable':"ssid_enable",*'wire_mode':"b25only",
> *'w_channel':6,'lan_ac':"everyone",'int_ac':"everyone"})
Where did this come from? This is not the output of ethereal...
>
> In conclusion,the character "+" is getting converted into"25" whenever I
> run script.Thats why all other configuartions are OK except above
> mentioned case.
Interestingly, %25 is the escaped representation of '%'. So I wonder if
your parameters are being url-encoded twice?
Can you show a little more of your code, and the actual string captured
from ethereal?
Kent
More information about the Tutor
mailing list