[英]cURL to PHP with header and username but without password
我一直在努力研究,但是沒有找到答案。
我得到了cURL:
curl "https://someurl" -H "client-id: Fsomemorecharacters8=" -u "8somemorecharacters0:"
在命令外殼中進行測試可以完美地進行。 但是如何使它與PHP一起使用? 通常是它的“用戶名:密碼”,但是我卻得到了“用戶名:”,這很奇怪。
到目前為止,我的PHP代碼:
<?php
$ch = curl_init();
$url = 'https://someurl';
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, array('client-id: FHP20c+somemorecharacters8='));
curl_setopt($ch, CURLOPT_USERPWD, '85a15somemorecharacters4550:'); //Issue is here i think
$output = curl_exec($ch);
curl_close($ch);
?>
您是否知道如何在給定-u“ username:”而不是-u“ username:password”的情況下使其工作?
問候
更新
答案見下文!
所以我畢竟能夠解決它。
print curl_error($ch);
就在$output = curl_exec($ch);
我發現“ SSL證書問題:證書鏈中的自簽名證書”。 curl_setopt ($ch, CURLOPT_CAINFO, dirname(__FILE__)."/cacert-2017-09-20.pem");
或者您可以使用curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
但是,不建議這樣做。 $status_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
我發現我的標頭不見了。 我需要使用CURLOPT_HTTPHEADER
而不是CURLOPT_HEADER
。 所以這是我的完整代碼:
<?php
$ch = curl_init();
$url = 'https://someurl';
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CAINFO, dirname(__FILE__)."/cacert-2017-09-20.pem");
//curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('client-id: client-id: FHP20c+somemorecharacters8='));
curl_setopt($ch, CURLOPT_USERPWD, '885a15somemorecharacters4550:');
$output = curl_exec($ch);
print curl_error($ch);
$status_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
file_put_contents('output.txt', $output);
echo '<br><b>Output</b><br>' . $output;
echo '<br><b>Status-Code</b><br>' . $status_code;
?>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.