[Tutor] + converted to 25 in http string

Martin Walsh mwalsh at groktech.org
Tue Apr 24 14:47:31 CEST 2007


Hi,

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"})

You might consider having a look at the urllib quote_plus and
unquote_plus methods for clarification. I suspect the value you have
captured with ethereal is already quoted ('+' signs for spaces, etc) --
so you would have to unquote_plus it to find the correct value for use
in your script.

.>> urllib.unquote_plus('b+only')
'b only'

And, it appears that urllib.urlencode quotes the parameters while
constructing the query-string:

.>> params = urllib.urlencode({'write_mode': 'b only'})
.>> params
'write_mode=b+only'

HTH,
Marty

> 
> 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.
> 
> 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"})
> 
> In conclusion,the character "+" is getting converted into"25" whenever I
> run
> script.Thats why all other configuartions are OK except above mentioned
> case.
> 
> Can anybody help to resolve this issue?
> 
> Best Regards,
> 
> Govind Goyal
> 


More information about the Tutor mailing list