使用https通过API添加GitLab Group

时间:2014-07-07 08:14:15

标签: php ssl https gitlab

我设法使用API​​ v3添加GitLab组。 现在我们将服务器从HTTP更改为HTTPS,我不能再添加组了。

它在HTTP上的工作方式是

$gitPostArray = array();
$gitPostArray["name"] = $groupName;
$gitPostArray["path"] = $groupPath;

$postdata = http_build_query($gitPostArray);
$opts = array('http' =>
            array(
                'method'  => 'POST',
                'header'  => 'Content-type: application/x-www-form-urlencoded',
                'content' => $postdata
                 )
            );
$context  = stream_context_create($opts);

$result = file_get_contents($this->connectionUrl . $path . '?private_token=' . $this->private_token, false, $context);

$objPost = json_decode($result);

但现在它不会添加我的群组。 我换了一行:

$opts = array('http' =>
$opts = array('https' =>

编辑 2014-07-08: 哦,我找到了一些有趣的东西:)

http://php.net/manual/en/function.stream-context-create.php#74795http://php.net/manual/en/function.stream-context-create.php#110158

我写了

$opts = array ('https' => .....

但也许是

 $opts = array ('ssl' => ...

编辑 2014-07-08 找到解决方案(向下滚动) https://stackoverflow.com/a/24628159/59689

2 个答案:

答案 0 :(得分:0)

尝试发布时是否收到任何错误,或者没有任何错误而失败?

此外,这是受信任的证书还是自签名证书?

答案 1 :(得分:0)

我找到了解决方案。

而不是使用file_get_contents 你必须“ fopen ”一个流,然后使用 stream_get_contents

工作解决方案是:

$postdata = http_build_query($postArray);

$opts = array(
   'http' =>
       array(
       'method'  => 'POST',
        'header'  => 'Content-type: application/x-www-form-urlencoded',
        'content' => $postdata
         )
);

$context  = stream_context_create($opts);
$urlstream = fopen($this->connectionUrl . $path . '?private_token=' . $this->private_token, 'r', false, $context);

$result = stream_get_contents($urlstream);

$objPost = json_decode($result);