84 lines
2.6 KiB
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;
|
|
}
|
|
}
|
|
?>
|