我设法使用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#74795 和 http://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
答案 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);