Ejemplo n.º 1
0
 protected function parseRawBody()
 {
     if ($this->firstLine->isEmptyBody()) {
         $this->post = new ParameterStorage();
     } else {
         $contentType = $this->header->getHeaderValue('HTTP_CONTENT_TYPE', 'text/plain');
         switch ($contentType) {
             case 'application/json':
                 $post = json_decode($this->rawBody);
                 break;
             case 'application/x-www-form-urlencoded':
                 foreach (explode('&', $this->rawBody) as $item) {
                     $pos = strpos($item, '=');
                     $post[urldecode(substr($item, 0, $pos))] = urldecode(substr($item, $pos + 1));
                 }
                 break;
             case 'multipart/form-data':
                 // @todo
                 break;
             case 'text/xml':
                 // @todo
                 break;
             case 'text/html':
             case 'text/plain':
             default:
                 break;
         }
         if (isset($post)) {
             $this->post = new ParameterStorage($post);
         }
     }
 }