|
Jorey Bump
list at joreybump.com
Wed Jul 23 11:32:13 EDT 2008
The semicolon (";") is a reserved character in RFC 3986:
http://tools.ietf.org/html/rfc3986#section-2.2
And the W3C recommends its use as an alternative to the ampersand ("&"):
<http://www.w3.org/TR/1999/REC-html401-19991224/appendix/notes.html#h-B.2.2>
So it looks like FieldStorage is behaving correctly.
To treat the semicolons as data in the query string, you might try
percent-encoding them as "%3B".
DataInputs=Input1=100;Input2=200
becomes:
DataInputs=Input1=100%3BInput2=200
Then your application must decode the semicolons in the value returned
for 'DataInputs' and split the key/value pairs, etc.
Graham Dumpleton wrote, at 07/23/2008 10:31 AM:
> Have you checked the HTTP RFC for GET URLs to see if what you are
> supplying is valid GET URL?
>
> Can you supply reference to part of RFC that indicates it is.
>
> Will save me trying to track it down. :-)
>
> Graham
>
> 2008/7/23 Jorge de Jesus <jorge.de-jesus at jrc.it>:
>> Hi to all
>>
>> I am programming an OGC's Web Processing Service (WPS) 1.0.0 , and this
>> standard defines a KVP like this:
>>
>> http://foo.bar/foo?
>> request=Execute&
>> service=WPS&
>> version=1.0.0&
>> language=en-CA&
>> Identifier=Buffer&
>> DataInputs=Object=@xlink:href=http://foo.bar/foo;BufferDistance=10&
>> ResponseDocument=BufferedPolygon&
>> StoreExecuteResponse=true
>>
>>
>> The DataInputs contains several inputs separated by ";" and attribute
>> information separated by "@", in my case my Datainput is like this:
>>
>> DataInputs=Input1=100;Input2=200
>>
>> I then use util.FieldStorage(Request) to get the KVP but this class doesn't
>> split the request by the & but associates the key-values with the =, so in
>> the end I will have a dictionary like this:
>>
>> {'DataInputs': [Field('DataInputs', 'Input1=10'0)], 'Input2':
>> [Field('Input2', '200')]}
>>
>> Basically Input2=10 is recognizes as another KVP and not a value from
>> DataInputs, I need something like this:
>>
>> {'DataInputs': [Field('DataInputs', 'Input1=10;Input2=200')]}
>>
>> I read the API documentation and I cant find a proper solution for the
>> problem, maybe to use a filter with some regular expression that would
>> change de = from the DataInput
>>
>> Any suggestions/help
>>
>> Thanks
>> Jorge
>>
>>
>> --
>> Ph.D. Jorge Samuel Mendes de Jesus
>>
>> European Commission (EC)
>> Joint Research Centre Directorate (DG JRC)
>> Institute for Environment and Sustainability (IES)
>> TP 441, Via Fermi 1
>> 21020 Ispra (VA)
>> Italy
>>
>> Phone: +39 0332 78 3536
>> Fax: +39 0332 78 5466
>>
>> http://rem.jrc.cec.eu.int
>>
>> "The views expressed are purely those of the writer and may not in any
>> circumstances be regarded as stating an official position of the European
>> Commission"
>>
>> _______________________________________________
>> Mod_python mailing list
>> Mod_python at modpython.org
>> http://mailman.modpython.org/mailman/listinfo/mod_python
>>
> _______________________________________________
> Mod_python mailing list
> Mod_python at modpython.org
> http://mailman.modpython.org/mailman/listinfo/mod_python
|