@1mb

Кодировка при передаче GET запроса cURL?

При отправке GET запроса с помощью cURL на локальном сервере (XAMPP), все хорошо работает. Но как только залил код на удаленный сервер (nginx), ответ приходит не тот который ожидается. Строку отправляю в кодированном виде с помощью urlencode(). Есть подозрение, что что-то с кодировкой. Знающих прошу помочь решить в чем дело.

private function request($url = '/', $aPost = null, $aOptions = array())
    {
        $ch = curl_init($url);

        curl_setopt_array($ch, [
            CURLOPT_HEADER            => true,
            CURLOPT_RETURNTRANSFER    => true,
            CURLOPT_ENCODING          => '',
            CURLOPT_CONNECTTIMEOUT    => 30,
            CURLOPT_COOKIEJAR         => $this->file_cookies,
            CURLOPT_COOKIEFILE        => $this->file_cookies,
            CURLOPT_USERAGENT         => 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.86 Safari/537.36',
            CURLOPT_HTTPHEADER        => [
                'Accept' => 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
                'Content-Type' => 'application/x-www-form-urlencoded',
            ]
        ]);

        if (!is_null($aPost)) {
            curl_setopt_array($ch, [
                CURLOPT_POST         => true,
                CURLOPT_POSTFIELDS   => is_array($aPost) ? http_build_query($aPost) : $aPost
            ]);
        }

        if (count($aOptions)) {
            curl_setopt_array($ch, $aOptions);
        }

        $response = curl_exec($ch);

        if ($response === false || curl_errno($ch) != 0) {
            throw new \Exception(curl_error($ch), curl_errno($ch));
        }
        curl_close($ch);

        return iconv('windows-1251', 'utf-8', $response);
    }
  • Вопрос задан
  • 1907 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы