0

我正在尝试在 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 不支持 PHP 中的 cUrl。我知道它可以直接用 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);

我在下面的评论中添加了错误

4

1 回答 1

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);
于 2016-07-28T11:11:32.937 回答