Handle application/json as well
authorPeter Cowburn <petercowburn@gmail.com>
Tue, 10 Mar 2015 13:22:16 +0000 (13:22 +0000)
committerPeter Cowburn <petercowburn@gmail.com>
Tue, 10 Mar 2015 13:22:16 +0000 (13:22 +0000)
php_json_post.c
tests/application.phpt [new file with mode: 0644]

index cb8a53b65586afdd2a03d6ed71e430c6820421b3..fd3165cf182633176106d64f8ee5603db69f8154 100644 (file)
@@ -130,14 +130,13 @@ static SAPI_POST_HANDLER_FUNC(php_json_post_handler)
 
 PHP_MINIT_FUNCTION(json_post)
 {
-       sapi_post_entry entry = {NULL, 0, NULL, NULL};
+       sapi_post_entry json_post_entries[] = {
+               { "text/json", sizeof("text/json")-1, sapi_read_standard_form_data, php_json_post_handler },
+               { "application/json", sizeof("application/json")-1, sapi_read_standard_form_data, php_json_post_handler },
+               { NULL, 0, NULL, NULL }
+       };
 
-       entry.post_reader = sapi_read_standard_form_data;
-       entry.post_handler = php_json_post_handler;
-
-       entry.content_type = "text/json";
-       entry.content_type_len = sizeof("text/json")-1;
-       sapi_register_post_entry(&entry TSRMLS_CC);
+       sapi_register_post_entries(json_post_entries TSRMLS_CC);
 
        ZEND_INIT_MODULE_GLOBALS(json_post, php_json_post_init_globals, NULL);
        REGISTER_INI_ENTRIES();
diff --git a/tests/application.phpt b/tests/application.phpt
new file mode 100644 (file)
index 0000000..1331be4
--- /dev/null
@@ -0,0 +1,24 @@
+--TEST--
+json_post with Content-Type: application/json
+--SKIPIF--
+<?php
+extension_loaded("json_post") or die("skip need json_post support\n");
+?>
+--POST_RAW--
+Content-Type: application/json
+
+{
+       "greeting": "Hello World"
+}
+--FILE--
+<?php
+var_dump($_POST, json_last_error());
+?>
+Done
+--EXPECTF--
+array(1) {
+  ["greeting"]=>
+  string(11) "Hello World"
+}
+int(0)
+Done