예제 #1
0
파일: Push.php 프로젝트: blar/push
 /**
  * @return \Blar\Http\HttpRequest
  */
 public function createRequest()
 {
     $request = new HttpRequest();
     $request->setMethod('POST');
     $request->setUrl($this->getHubUrl());
     return $request;
 }
예제 #2
0
 /**
  * @return \Blar\Http\HttpRequest
  */
 public function createRequest()
 {
     $request = new HttpRequest();
     $request->setMethod('POST');
     $request->getHeaders()->set('Content-Type', 'application/xml');
     $request->getHeaders()->set('Accept', 'application/xml, text/xml');
     return $request;
 }
예제 #3
0
 public function testRedirect()
 {
     $request = new HttpRequest();
     $request->setUrl('http://httpbin.org/redirect/5');
     $response = $request->send();
     $this->assertEquals('http://httpbin.org/get', $response->getUrl());
 }
예제 #4
0
 /**
  * @param string $methodName Method name.
  * @param array $arguments Arguments.
  * @return Blar\Http\HttpRequest
  */
 public function createRequest($methodName, array $arguments = array())
 {
     if (!$this->getWebserviceDescription()->has($methodName)) {
         throw new Exception(sprintf('Method "%s" not found', $methodName), 404);
     }
     $method = $this->getWebserviceDescription()->get($methodName);
     $method->getParameters()->setValues($this->getDefaultArguments());
     $method->getParameters()->setValues($arguments);
     $request = new HttpRequest();
     $request->setMethod($method->getMethod());
     $this->prepareRequest($request, $method);
     $event = new Event();
     $event->setTarget($request);
     $this->getEmitter()->fireEvent('requestCreated', $event);
     return $request;
 }
예제 #5
0
 /**
  * @param Blar\Http\HttpRequest $request Request.
  * @param Blar\Webservice\WebserviceMethod $method Method.
  * @return self
  */
 protected function prepareRequest($request, $method)
 {
     $templateVariables = new Collection();
     $query = new Query();
     $body = array();
     foreach ($method->getParameters() as $parameter) {
         switch ($parameter->getStyle()) {
             case 'template':
                 $templateVariables->set($parameter->getName(), $parameter->getValue());
                 break;
             case 'query':
                 $query->set($parameter->getName(), $parameter->getValue());
                 break;
             case 'header':
                 $request->getHeaders()->set($parameter->getName(), $parameter->getValue());
                 break;
             case 'body':
                 $body[$parameter->getName()] = $parameter->getValue();
                 break;
         }
     }
     $url = $method->getUrl();
     $template = new UriTemplate($url);
     $url = $template->create($templateVariables);
     $url = new Url($url);
     $url->setQuery($query);
     $request->setUrl($url);
     $request->setBody($body);
     return $this;
 }