Example #1
0
 public function sendRequest($url, array $query_data = [], $cookie = true)
 {
     /**
      * @var \HttpQueryString $params
      */
     $queryData = new \http\QueryString($query_data);
     /**
      * @var \HttpRequest $http
      */
     $request = new \http\Client\Request("GET", $url);
     if (!empty($queryData)) {
         $request->getBody()->append($queryData);
     }
     $request->setContentType("application/x-www-form-urlencoded");
     $client = new \http\Client();
     $cookie_file = 'cookie.log';
     if ($cookie) {
         $cookie_str = file_exists($cookie_file) ? file_get_contents($cookie_file) : '';
         $cookie = new Cookie($cookie_str);
         $client_cookie = $cookie->getCookie('frontend');
         if ($client_cookie != 'deleted') {
             $client->addCookies(['frontend' => $client_cookie]);
         }
     }
     $client->enqueue($request);
     $client->send();
     /** @var \HttpResponse $response */
     $response = $client->getResponse($request);
     printf("Sent:\n%s\n\n", $response->getParentMessage());
     printf("%s returned '%s'\n%s\n", $response->getTransferInfo("effective_url"), $response->getInfo(), $response->getBody());
     file_put_contents($cookie_file, '');
     foreach ($response->getCookies() as $cookie) {
         /* @var $cookie http\Cookie */
         foreach ($cookie->getCookies() as $name => $value) {
             $cookie = new \http\Cookie();
             $cookie->addCookie($name, $value);
             file_put_contents($cookie_file, $cookie->toString(), FILE_APPEND);
         }
     }
     print_r($response->getHeaders());
     return json_decode($response->getBody(), true);
 }