Example #1
0
 /**
  * @param string $relation
  * @param array  $parameters
  * @throws ServiceUnavailableHttpException
  * @return Navigator|mixed
  */
 public function command($relation, array $parameters = [], $files = [])
 {
     $templatedUrl = $this->getRelation($relation);
     // expand template url + remove templated params from parameters
     $url = $this->renderUri($templatedUrl, $parameters);
     $templatedParameters = $this->uriTemplater->extract($templatedUrl, $url);
     $parameters = array_diff_key($parameters, $templatedParameters);
     try {
         $headers = [];
         if (!$files) {
             $headers = ['Content-Type' => 'application/json'];
             $parameters = json_encode($parameters);
         }
         $request = $this->guzzleClient->post($url, $headers, $parameters);
         $request->addPostFiles($files);
         $command = $this->guzzleClient->send($request);
     } catch (ClientErrorResponseException $e) {
         throw $e;
     }
     switch ($command->getContentType()) {
         case 'application/hal+json':
             $response = new Navigator($command->json());
             break;
         case 'application/json':
             $response = $command->json();
             break;
         default:
             $response = $command->getBody(true);
             break;
     }
     return $response;
 }
Example #2
0
/**
 * Created by PhpStorm.
 * User: WhiteBlue
 * Date: 15/7/8
 * Time: 下午10:11
 */
function fetch()
{
    $client = new Client();
    $request = new Request('GET', 'http://api.bilibili.cn/index');
    $response = $client->send($request, ['timeout' => 2]);
    $json = json_decode($response->getBody());
    $count = 0;
    foreach ($json as $type => $value) {
        $sort = Sort::where('type', '=', $type)->first();
        if ($sort != null) {
            foreach ($value as $id => $content) {
                if (is_object($content)) {
                    if (Save::where('aid', '=', $content->aid)->first() == null) {
                        $save = new Save();
                        $save->aid = $content->aid;
                        $save->title = $content->title;
                        if (strlen($content->description) > 70) {
                            $save->content = mb_substr($content->description, 0, 70, 'utf-8') . '....';
                        } else {
                            $save->content = $content->description;
                        }
                        $save->href = 'http://www.bilibili.com/video/AV' . $content->aid;
                        $save->img = $content->pic;
                        $sort->saves()->save($save);
                        $count++;
                        $sort->update = date('Y:m:d');
                        $sort->save();
                    }
                }
            }
        }
    }
    event(new UpdateEvent());
    return $count;
}
    /**
     * @param EntityEnclosingRequest|EntityEnclosingRequest[]
     * @return array|\Guzzle\Http\Message\Response
     * @throws \Exception
     * @throws \Guzzle\Common\Exception\ExceptionCollection
     * @throws mixed
     */
    public function send($requests)
    {
        if ( is_array($requests) && count($requests) > 1 )
        {
            \eZDebug::writeError( 'Should not receive multiple guzzle requests', __CLASS__.'::'.__METHOD__ );
            return parent::send($requests);
        }

        /* @var $request EntityEnclosingRequest */
        $request = is_array($requests) ? $requests[0] : $requests;

        if ( $request->getMethod() !== 'POST' )
        {
            \eZDebug::writeNotice( 'Not POST method used ('.$request->getMethod().'). Falling back to default Guzzle behaviour' );
            return parent::send($requests);
        }

        return GuzzleCurlHelper::sendRequest( $request );

    }
Example #4
0
 /**
  * {@inheritdoc}
  * @throws \Aws\Common\Exception\TransferException
  */
 public function send($requests)
 {
     try {
         return parent::send($requests);
     } catch (CurlException $e) {
         $wrapped = new TransferException($e->getMessage(), null, $e);
         $wrapped->setCurlHandle($e->getCurlHandle())->setCurlInfo($e->getCurlInfo())->setError($e->getError(), $e->getErrorNo())->setRequest($e->getRequest());
         throw $wrapped;
     }
 }