Я решил внедрить вход 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?