MDL-55028 webservice_soap: Use strlen for setting Content-Length header
authorJun Pataleta <jun@moodle.com>
Mon, 27 Jun 2016 05:29:18 +0000 (13:29 +0800)
committerJun Pataleta <jun@moodle.com>
Mon, 27 Jun 2016 05:59:20 +0000 (13:59 +0800)
webservice/soap/locallib.php

index 02c6440..ebfa5ca 100644 (file)
@@ -240,11 +240,8 @@ class webservice_soap_server extends webservice_base_server {
         $envelope->appendChild($body);
         $dom->appendChild($envelope);
 
-        // Send headers.
-        $this->send_headers();
-
-        // Output the XML.
-        echo $dom->saveXML();
+        $this->response = $dom->saveXML();
+        $this->send_response();
     }
 
     /**
@@ -263,7 +260,7 @@ class webservice_soap_server extends webservice_base_server {
         header('Expires: ' . gmdate('D, d M Y H:i:s', 0) . ' GMT');
         header('Pragma: no-cache');
         header('Accept-Ranges: none');
-        header('Content-Length: ' . count($this->response));
+        header('Content-Length: ' . strlen($this->response));
         header('Content-Type: application/xml; charset=utf-8');
         header('Content-Disposition: inline; filename="response.xml"');
     }