By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
440,262 Members | 1,125 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 440,262 IT Pros & Developers. It's quick & easy.

multiple content-types break cgi.py

P: n/a
Hi!

The Nokia Java SDK allows one to define multiple content-types in a
single HTTP header field. I'm not sure if it's standard, but it's
happening from some Java-enabled phones.

This breaks the FieldStorage class in cgi.py by not causing
self.read_urlencoded() to be called at object init. Specifically when
one gets a type value like 'text/plain, application/x-www-form-
urlencoded'.

Hacking one of the lines from:
if ctype == 'application/x-www-form-urlencoded':
self.read_urlencoded()
to
if 'application/x-www-form-urlencoded' in [s.strip() for s in
ctype.split(",")]:
self.read_urlencoded()
makes it work as expected.

The only reference to this "bug" I can find dates back to 1999:
http://tinyurl.com/3ahc3r

Regards
Janto

Mar 4 '07 #1
Share this Question
Share on Google+
4 Replies


P: n/a
In article <11**********************@p10g2000cwp.googlegroups .com>, Janto Dreijer wrote:
The Nokia Java SDK allows one to define multiple content-types in a
single HTTP header field. I'm not sure if it's standard, but it's
happening from some Java-enabled phones.

The only reference to this "bug" I can find dates back to 1999:
http://tinyurl.com/3ahc3r
It's not a bug - sending multiple content-types is just totally broken.
What would such a header even be supposed to mean? It's like saying
"this is an apple orange".
Mar 4 '07 #2

P: n/a
In <sl***********************@snowy.squish.net>, Jon Ribbens wrote:
It's not a bug - sending multiple content-types is just totally broken.
What would such a header even be supposed to mean? It's like saying
"this is an apple orange".
And the correct header for such a beast would be "this is an iOrange" of
course. ;-)

SCNR,
Marc 'BlackJack' Rintsch
Mar 4 '07 #3

P: n/a
On Mar 4, 12:29 pm, Jon Ribbens <jon+use...@unequivocal.co.ukwrote:
In article <1173002603.690853.250...@p10g2000cwp.googlegroups .com>, Janto Dreijer wrote:
The Nokia Java SDK allows one to define multiple content-types in a
single HTTP header field. I'm not sure if it's standard, but it's
happening from some Java-enabled phones.
The only reference to this "bug" I can find dates back to 1999:
http://tinyurl.com/3ahc3r

It's not a bug - sending multiple content-types is just totally broken.
What would such a header even be supposed to mean? It's like saying
"this is an apple orange".
Hmmm. Thanks! I suspected as much.

Rough inspection suggests that calling
connection.setRequestProperty("Content-Type", "application/x-www-
form-urlencoded");
on the Nokia 6230 would actually cause the value to be *appended* and
not set.

Yuck! It looks like I'm going to have to keep a modified copy of
cgi.py if I want to support the phone. Or hack something on the Java
side.

Janto

Mar 4 '07 #4

P: n/a
In article <11*********************@s48g2000cws.googlegroups. com>, Janto Dreijer wrote:
>It's not a bug - sending multiple content-types is just totally broken.
What would such a header even be supposed to mean? It's like saying
"this is an apple orange".

Hmmm. Thanks! I suspected as much.

Rough inspection suggests that calling
connection.setRequestProperty("Content-Type", "application/x-www-
form-urlencoded");
on the Nokia 6230 would actually cause the value to be *appended* and
not set.
If that method is inherited from java.net.URLConnection, then if the
phone is behaving as you suggest, its Java library is bugged and
behaving contrary to Sun's Java documentation.
Mar 4 '07 #5

This discussion thread is closed

Replies have been disabled for this discussion.