40         curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
    41         curl_setopt($ch, CURLOPT_URL, $message->
getUrl());
    42         if (!empty($message->requestHeaders)) {
    43             curl_setopt($ch, CURLOPT_HTTPHEADER, $message->requestHeaders);
    45             curl_setopt($ch, CURLOPT_HEADER, 0);
    48             curl_setopt($ch, CURLOPT_POST, 
true);
    49             curl_setopt($ch, CURLOPT_POSTFIELDS, $message->request);
    50         } elseif ($message->
getMethod() !== 
'GET') {
    51             curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $message->
getMethod());
    52             if (!is_null($message->request)) {
    53                 curl_setopt($ch, CURLOPT_POSTFIELDS, $message->request);
    56         curl_setopt($ch, CURLOPT_RETURNTRANSFER, 
true);
    57         curl_setopt($ch, CURLINFO_HEADER_OUT, 
true);
    58         curl_setopt($ch, CURLOPT_HEADER, 
true);
    59         $chResp = curl_exec($ch);
    60         $message->requestHeaders = trim(str_replace(
"\r\n", 
"\n", curl_getinfo($ch, CURLINFO_HEADER_OUT)));
    61         $chResp = str_replace(
"\r\n", 
"\n", $chResp);
    62         $chRespSplit = explode(
"\n\n", $chResp, 2);
    63         if ((count($chRespSplit) > 1) && (substr($chRespSplit[1], 0, 5) === 
'HTTP/')) {
    64             $chRespSplit = explode(
"\n\n", $chRespSplit[1], 2);
    66         $message->responseHeaders = trim($chRespSplit[0]);
    67         if (count($chRespSplit) > 1) {
    68             $message->response = $chRespSplit[1];
    70             $message->response = 
'';
    72         $message->status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    73         $message->ok = ($message->status >= 100) && ($message->status < 400);
    75             $message->error = curl_error($ch);