Small improvements cURL

This commit is contained in:
Valentin Popov 2017-10-26 10:38:35 +04:00
parent a95df3c6b1
commit 3a24fc34ca

View File

@ -15,7 +15,7 @@
// along with Moodle. If not, see <http://www.gnu.org/licenses/>. // along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/** /**
* Create a class for sending data. * Method of sending data.
* *
* @package local_webhooks * @package local_webhooks
* @copyright 2017 "Valentin Popov" <info@valentineus.link> * @copyright 2017 "Valentin Popov" <info@valentineus.link>
@ -26,13 +26,28 @@ namespace local_webhooks;
defined("MOODLE_INTERNAL") || die(); defined("MOODLE_INTERNAL") || die();
/**
* Wrapper over cURL.
*
* @copyright 2017 "Valentin Popov" <info@valentineus.link>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class curl { class curl {
/**
* The class constructor.
*/
public function __construct() { public function __construct() {
if (!function_exists("curl_init")) { if (!function_exists("curl_init")) {
print_error("nocurl", "mnet"); print_error("nocurl", "mnet");
} }
} }
/**
* Easy data sending.
*
* @param object $callback
* @param string $data
*/
public static function request($callback, $data) { public static function request($callback, $data) {
$ch = curl_init($callback->url); $ch = curl_init($callback->url);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
@ -40,9 +55,10 @@ class curl {
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, curl_setopt($ch, CURLOPT_HTTPHEADER,
array( array(
"Content-Type: application/" . $callback->type, "Content-Type: application/$callback->type",
"Content-Length: " . strlen($data)) "Content-Length: " . mb_strlen($data, "UTF-8")
); )
);
$result = curl_exec($ch); $result = curl_exec($ch);
curl_close($ch); curl_close($ch);