Альтернативный способ написать cUrl в переполнении стека

Я пытаюсь создать сервис на hook.io для загрузки токена из другого API.

public function loadToken()
{
$computedHash = base64_encode(hash_hmac ( 'md5' , $this->authServiceUrl , $this->password, true ));
$authorization = 'Authorization: Bearer '.$this->username.':'.$computedHash;

$curl = curl_init();
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, '');
curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-Type: application/json' , $authorization ));
curl_setopt($curl, CURLOPT_URL, $this->authServiceUrl);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);

$result = curl_exec($curl);
$obj = json_decode($result);
$info = curl_getinfo($curl);
curl_close($curl);

if($info['http_code'] != '200')
{
// print error from the server
echo($obj);
return NULL;
}

return $obj;
}

Но оказывается, что hook.io не поддерживает cUrl в PHP. Я знаю, что это можно сделать напрямую с php, но я не знаю как.

редактировать :
Я использовал file_get_contents, теперь это дает другую ошибку.

$username = '';
$password = '';
$authServiceUrl = '';$computedHash = base64_encode(hash_hmac ( 'md5' , $authServiceUrl , $password, true ));
$authorization = 'Authorization: Bearer '.$username.':'.$computedHash;

// Create map with request parameters// Build Http query using params// Create Http context details
$contextData = array (
'method' => 'POST',
'header' => "Content-Type: application/json". $authorization ,
);

// Create context resource for our request
$context = stream_context_create (array ( 'http' => $contextData ));

// Read page rendered as result of your POST request
$result =  file_get_contents (
$authServiceUrl,  // page url
false,
$context);

Я добавил ошибку в комментариях ниже

0

Решение

На самом деле, у hook.io есть поддержка curl, насколько я знаю. Но если вы хотите попробовать другие альтернативы, вы можете использовать file_get_contents, Он имеет поддержку пользовательского контекста и параметров.

$opts = [
'http' => [
'method' => 'POST',
'headers' => ['Authorization' => 'Bearer ' . $this->username . ':' . $computedHash]
]
];
$context = stream_context_create($opts);
$file = file_get_contents('http://www.hook.io/example/', false, $context);
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]