/**
  * Sends HTTP request with the specified parameters.
  * 
  * @param string $method         HTTP method used in the request
  * @param array  $headers        HTTP headers.
  * @param array  $queryParams    URL query parameters.
  * @param array  $postParameters The HTTP POST parameters.
  * @param string $path           URL path
  * @param int    $statusCode     Expected status code received in the response
  * @param string $body           Request body
  * 
  * @return \HTTP_Request2_Response
  */
 protected function send($method, $headers, $queryParams, $postParameters, $path, $statusCode, $body = Resources::EMPTY_STRING)
 {
     $context = new HttpCallContext();
     $context->setBody($body);
     $context->setHeaders($headers);
     $context->setMethod($method);
     $context->setPath($path);
     $context->setQueryParameters($queryParams);
     $context->setPostParameters($postParameters);
     if (is_array($statusCode)) {
         $context->setStatusCodes($statusCode);
     } else {
         $context->addStatusCode($statusCode);
     }
     return $this->sendContext($context);
 }