Beispiel #1
0
 /**
  * @inheritdoc
  */
 public function format(HttpRequest $request)
 {
     $contentType = $this->contentType;
     $charset = $this->encoding === 'utf-8';
     // ? Yii::$app->charset : $this->encoding;
     if (stripos($contentType, 'charset') === false) {
         $contentType .= '; charset=' . $charset;
     }
     $request->addHeader('Content-Type', $contentType);
     $data = $request->getData();
     if ($data !== null) {
         if ($data instanceof DOMDocument) {
             $content = $data->saveXML();
         } elseif ($data instanceof SimpleXMLElement) {
             $content = $data->saveXML();
         } else {
             $dom = new DOMDocument($this->version, $charset);
             $root = new DOMElement($this->rootTag);
             $dom->appendChild($root);
             $this->buildXml($root, $data);
             $content = $dom->saveXML();
         }
         $request->setContent($content);
     }
     return $request;
 }
Beispiel #2
0
 /**
  * @param HttpRequest $request
  * @param callable|null $success
  * @param callable|null $failed
  * @return bool|\cdcchen\net\curl\HttpResponse
  * @throws RequestException
  */
 protected static function sendRequest(HttpRequest $request, callable $success = null, callable $failed = null)
 {
     try {
         $response = $request->send();
         if ($success === null) {
             return $response;
         } else {
             return call_user_func($success, $response);
         }
     } catch (CUrlRequestException $e) {
         if ($failed) {
             return call_user_func($failed, $request);
         } else {
             throw new RequestException($e->getMessage(), $e->getCode());
         }
     }
 }