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
_______________________________________________
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor

Reply via email to