Added patch of gbjk, released 1.16 v1.16
Torsten Raudssus [Wed, 3 Oct 2012 15:18:47 +0000 (15:18 +0000)]
dist.ini
lib/HTTP/Body.pm

index ee2a2e5..1b07698 100644 (file)
--- a/dist.ini
+++ b/dist.ini
@@ -1,5 +1,5 @@
 name    = HTTP-Body
-version = 1.15
+version = 1.16
 author  = Christian Hansen, C<chansen@cpan.org>
 author  = Sebastian Riedel, C<sri@cpan.org>
 author  = Andy Grundman, C<andy@hybridized.org>
index acecd21..8a6e22a 100644 (file)
@@ -9,7 +9,8 @@ our $TYPES = {
     'application/x-www-form-urlencoded' => 'HTTP::Body::UrlEncoded',
     'multipart/form-data'               => 'HTTP::Body::MultiPart',
     'multipart/related'                 => 'HTTP::Body::XFormsMultipart',
-    'application/xml'                   => 'HTTP::Body::XForms'
+    'application/xml'                   => 'HTTP::Body::XForms',
+    'application/json'                  => 'HTTP::Body::OctetStream',
 };
 
 require HTTP::Body::OctetStream;
@@ -55,9 +56,9 @@ HTTP::Body - HTTP Body Parser
 
 =head1 DESCRIPTION
 
-HTTP::Body parses chunks of HTTP POST data and supports 
-application/octet-stream, application/x-www-form-urlencoded, and
-multipart/form-data.
+HTTP::Body parses chunks of HTTP POST data and supports
+application/octet-stream, application/json, application/x-www-form-urlencoded,
+and multipart/form-data.
 
 Chunked bodies are supported by not passing a length value to new().
 
@@ -89,9 +90,12 @@ sub new {
     }
 
     my $type;
+    my $earliest_index;
     foreach my $supported ( keys %{$TYPES} ) {
-        if ( index( lc($content_type), $supported ) >= 0 ) {
-            $type = $supported;
+        my $index = index( lc($content_type), $supported );
+        if ($index >= 0 && (!defined $earliest_index || $index < $earliest_index)) {
+            $type           = $supported;
+            $earliest_index = $index;
         }
     }