WcfRestContrib icon indicating copy to clipboard operation
WcfRestContrib copied to clipboard

Content-Type: application/x-www-form-urlencoded; charset=UTF-8 fails to decode properly (rlightner)

Open mikeobrien opened this issue 15 years ago • 4 comments

jQuery likes to append the charset onto it's content-type. example: Content-Type: application/x-www-form-urlencoded; charset=UTF-8

Seems that the system should be able to parse that out appropriately and not roll down to a PoxDataContract instead of the FormUrlEncoded

mikeobrien avatar Aug 11 '10 18:08 mikeobrien

rlightner wrote on Jan 22 at 10:02 AM: so if I add that content-type to the mimeTypes entry in the web.config it supports it.

Would it make more sense for the WebFormatterFactory.CreateFormatter to do some parsing on the ; or leave it to the developer to update the mimeTypes accordingly?

mikeobrien avatar Aug 11 '10 18:08 mikeobrien

I just hit a similar problem with Content-Type: multipart/form-data; boundary=<long_random_string>

In this case the content type varies with every request, so adding it to the config is not an option. So I vote for CreateFormatter regarding everything up to the first semicolon as the content type.

NickNorth avatar Sep 13 '10 14:09 NickNorth

Thats actually pretty easy to fix. I've been pretty disconnected from this project lately so I'll but I'll try to get this fixed right away.

mikeobrien avatar Sep 13 '10 15:09 mikeobrien

Wow - that is a quick response, many thanks. At the risk of stretching your patience I'll mention that the other problem I'm hitting with sending multipart data is that anything over 16Kb in size provokes:

Error: The maximum array length quota (16384) has been exceeded while reading XML data. This quota may be increased by changing the MaxArrayLength property on the XmlDictionaryReaderQuotas object used when creating the XML reader. Stack trace: at System.Xml.XmlExceptionHelper.ThrowXmlException(XmlDictionaryReader reader, String res, String arg1, String arg2, String arg3) at System.Xml.XmlDictionaryReader.ReadContentAsBytes(Boolean base64, Int32 maxByteArrayContentLength) at System.Xml.XmlDictionaryReader.ReadContentAsBase64(Int32 maxByteArrayContentLength, Int32 maxInitialCount) at WcfRestContrib.ServiceModel.Channels.BinaryBodyReader..ctor(XmlDictionaryReader reader) in D:\Dev\Personal\Components\WcfRestContrib\WcfRestContrib\ServiceModel\Channels\BinaryBodyReader.cs:line 26...

Is there any workaround for that issue?

NickNorth avatar Sep 13 '10 16:09 NickNorth