Как перевести такой код PHP с использованием CURL в C / C ++? - PullRequest
1 голос
/ 17 июля 2011

Я решил внедрить вход OpenID на мой сервер C ++.Я просмотрел список доступных клиентов C ++ OpenID и нашел только один популярный libopkele.Но его требования кажутся вполне подходящими для моего простого сервера, который имеет собственный xml-анализатор, использует boost для регулярных выражений и так далее.

Итак, я хочу создать простой клиент openID на C ++, поэтому я решил портировать PHPclient (потому что я немного знаю PHPa).Существует класс с именем class.openid.php, который в своей первой версии содержит всего 200 строк кода PHP.Моя главная проблема в том, что я никогда раньше не использовал curl ни в PHP, ни в c ++.Поэтому я прошу помощи в переводе на C / C ++ такого PHP-кода:

function CURL_Request($url, $method="GET", $params = "") { // Remember, SSL MUST BE SUPPORTED
        if (is_array($params)) $params = $this->array2url($params);
        $curl = curl_init($url . ($method == "GET" && $params != "" ? "?" . $params : ""));
        curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
        curl_setopt($curl, CURLOPT_HEADER, false);
        curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
        curl_setopt($curl, CURLOPT_HTTPGET, ($method == "GET"));
        curl_setopt($curl, CURLOPT_POST, ($method == "POST"));
        if ($method == "POST") curl_setopt($curl, CURLOPT_POSTFIELDS, $params);
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
        $response = curl_exec($curl);

        if (curl_errno($curl) == 0){
            $response;
        }else{
            $this->ErrorStore('OPENID_CURL', curl_error($curl));
        }
        return $response;
}

Итак. Как перевести такую ​​функцию в C ++ (используя libCURL) из PHP?

1 Ответ

5 голосов
/ 17 июля 2011

cURL имеет C API: ссылка .Вы также можете использовать это из C ++.

Не должно быть сложным переписать функцию, которую вы дали при использовании API cURL.

...