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