コード例 #1
1
 /**
  * @param ClientRequest $clientRequest
  * @return Response
  */
 public function getResponse(ClientRequest $clientRequest)
 {
     $client = new HttpClient();
     $headers = array();
     foreach ($clientRequest->getHeaders() as $key => $val) {
         $headers[] = "{$key}: {$val}";
     }
     switch ($clientRequest->getVerb()) {
         case ClientRequest::POST:
             $response = $client->post(array('url' => $clientRequest->getUrl(), 'content' => $clientRequest->getContent(), 'headers' => $headers));
             break;
         case ClientRequest::DELETE:
             $response = $client->delete(array('url' => $clientRequest->getUrl(), 'headers' => $headers));
             break;
         case ClientRequest::PUT:
             $response = $client->put(array('url' => $clientRequest->getUrl(), 'content' => $clientRequest->getContent(), 'headers' => $headers));
             break;
         case ClientRequest::GET:
         default:
             $response = $client->get(array('url' => $clientRequest->getUrl(), 'params' => $clientRequest->getParameters(), 'headers' => $headers));
             break;
     }
     if ($response instanceof \Vinelab\Http\Response) {
         $content = $response->content();
         if (is_bool($content) || is_null($content)) {
             $content = '';
         }
         $responseBag = new Response($content, $response->statusCode(), $response->headers());
         return $responseBag;
     } else {
         return null;
     }
 }