Пример #1
0
 /**
  * Create a request or response object from an HTTP message string
  *
  * @param string $message Message to parse
  *
  * @return puzzle_message_RequestInterface|puzzle_message_ResponseInterface
  * @throws InvalidArgumentException if unable to parse a message
  */
 public function fromMessage($message)
 {
     static $parser;
     if (!$parser) {
         $parser = new puzzle_message_MessageParser();
     }
     // Parse a response
     if (strtoupper(substr($message, 0, 4)) == 'HTTP') {
         $data = $parser->parseResponse($message);
         return $this->createResponse($data['code'], $data['headers'], $data['body'] === '' ? null : $data['body'], $data);
     }
     // Parse a request
     if (!($data = $parser->parseRequest($message))) {
         throw new InvalidArgumentException('Unable to parse request');
     }
     return $this->createRequest($data['method'], puzzle_Url::buildUrl($data['request_url']), array('headers' => $data['headers'], 'body' => $data['body'] === '' ? null : $data['body'], 'config' => array('protocol_version' => $data['protocol_version'])));
 }
Пример #2
0
 /**
  * {@inheritdoc}
  */
 public function __toString()
 {
     $parts = $this->_delegateUrl->getParts();
     if ($this->_query) {
         $parts['query'] = $this->_query;
     } else {
         unset($parts['query']);
     }
     return puzzle_Url::buildUrl($parts);
 }
Пример #3
0
 public function testAddsQueryIfPresent()
 {
     $this->assertEquals('?foo=bar', puzzle_Url::buildUrl(array('query' => 'foo=bar')));
 }