OpenSim.VisitorBoard/classes/Http.php

84 lines
2.6 KiB
PHP

<?php
/***********************************************************************
* Script (c) Kubwa (https://kubwa.de)
*
* This script was release under BSD license.
* You are free to use, share or change this code as you wish. This
* header must be kept intact.
***********************************************************************/
function HttpRequest($Host, $PostData = "", $Auth = "", $Timeout = 60, $ContentType = "application/x-www-form-urlencoded")
{
$Res = "";
try
{
if (function_exists("curl_init"))
{
$Handler = curl_init();
curl_setopt($Handler, CURLOPT_URL, $Host);
curl_setopt($Handler, CURLOPT_TIMEOUT, $Timeout);
curl_setopt($Handler, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($Handler, CURLOPT_SSL_VERIFYPEER, false);
$Headers = array();
$Headers[] = "Connection: Close";
$Headers[] = "User-Agent: Kubwa Framework HTTP-Request";
if (!empty($Auth))
{$Headers[] = "Authorization: Basic ".base64_encode($Auth);}
if (!empty($PostData))
{
$Headers[] = "Content-type: ".$ContentType;
$Headers[] = "Content-Length: ".strlen($PostData);
curl_setopt($Handler, CURLOPT_POST, true);
curl_setopt($Handler, CURLOPT_POSTFIELDS, $PostData);
}
curl_setopt($Handler, CURLOPT_HTTPHEADER, $Headers);
curl_setopt($Handler, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($Handler, CURLOPT_HEADER, false);
curl_setopt($Handler, CURLOPT_RETURNTRANSFER, true);
$Res = curl_exec($Handler);
curl_close($Handler);
}
else
{
$Headers = array();
$Headers[] = "Connection: Close";
$Headers[] = "User-Agent: Kubwa Framework HTTP-Request";
if (!empty($Auth))
{$Headers[] = "Authorization: Basic ".base64_encode($Auth);}
if (!empty($PostData))
{
$Headers[] = "Content-type: ".$ContentType;
$Headers[] = "Content-Length: ".strlen($PostData);
$Options = array('http' => array( 'header' => $Headers,
'method' => 'POST',
'timeout' => $Timeout,
'content' => $PostData
),
'ssl' => array( 'verify_peer' => false,
'allow_self_signed' => true
)
);
}
else
{
$Options = array('http' => array( 'header' => $Headers,
'method' => 'GET',
'timeout' => $Timeout
),
'ssl' => array( 'verify_peer' => false,
'allow_self_signed' => true
)
);
}
$Res = file_get_contents($Host, false, stream_context_create($Options));
}
return $Res;
}
catch (HttpException $ex)
{
return $ex;
}
}
?>