File tree Expand file tree Collapse file tree 3 files changed +19
-7
lines changed Expand file tree Collapse file tree 3 files changed +19
-7
lines changed Original file line number Diff line number Diff line change @@ -104,9 +104,9 @@ The following methods are available:
104104- $mess->decoded\_ content( %options )
105105
106106 Returns the content with any ` Content-Encoding ` undone and for textual content
107- the raw content encoded to Perl's Unicode strings. If the ` Content-Encoding `
108- or ` charset ` of the message is unknown this method will fail by returning
109- ` undef ` .
107+ (text/ * , XML, or JSON) the raw content encoded to Perl's Unicode strings. If
108+ the ` Content-Encoding ` or ` charset ` of the message is unknown this method will
109+ fail by returning ` undef ` .
110110
111111 The following options can be specified.
112112
Original file line number Diff line number Diff line change @@ -405,6 +405,13 @@ sub content_is_xml {
405405 return 0;
406406}
407407
408+ sub content_is_json {
409+ my $ct = shift -> content_type;
410+ # text/json is not standard but still used by various servers.
411+ # No issue including it as well.
412+ return $ct eq ' application/json' || $ct eq ' text/json' || $ct =~ / \+ json$ / ;
413+ }
414+
408415sub referer {
409416 my $self = shift ;
410417 if (@_ && $_ [0] =~ / #/ ) {
@@ -737,6 +744,11 @@ content is XHTML. This method can't be used to set Content-Type.
737744Returns TRUE if the Content-Type header field indicate that the
738745content is XML. This method can't be used to set Content-Type.
739746
747+ =item $h->content_is_json
748+
749+ Returns TRUE if the Content-Type header field indicate that the
750+ content is JSON. This method can't be used to set Content-Type.
751+
740752=item $h->content_encoding
741753
742754The Content-Encoding header field is used as a modifier to the
Original file line number Diff line number Diff line change @@ -351,7 +351,7 @@ sub decoded_content
351351 }
352352 }
353353
354- if ($self -> content_is_text || (my $is_xml = $self -> content_is_xml)) {
354+ if ($self -> content_is_text || (my $is_xml = $self -> content_is_xml) || $self -> content_is_json ) {
355355 my $charset = lc (
356356 $opt {charset } ||
357357 $self -> content_type_charset ||
@@ -879,9 +879,9 @@ for details about how charset is determined.
879879=item $mess->decoded_content( %options )
880880
881881Returns the content with any C<Content-Encoding > undone and for textual content
882- the raw content encoded to Perl's Unicode strings. If the C< Content-Encoding >
883- or C<charset > of the message is unknown this method will fail by returning
884- C<undef > .
882+ (text/*, XML, or JSON) the raw content encoded to Perl's Unicode strings. If
883+ the C< Content-Encoding > or C<charset > of the message is unknown this method
884+ will fail by returning C<undef > .
885885
886886The following options can be specified.
887887
You can’t perform that action at this time.
0 commit comments