簡體   English   中英

cURL到PHP,帶有標題和用戶名,但沒有密碼

[英]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”的情況下使其工作?

問候

更新
答案見下文!

所以我畢竟能夠解決它。

  1. 感謝print curl_error($ch); 就在$output = curl_exec($ch); 我發現“ SSL證書問題:證書鏈中的自簽名證書”。
  2. 因此,我需要下載證書並將其包含在請求中,如下所示: curl_setopt ($ch, CURLOPT_CAINFO, dirname(__FILE__)."/cacert-2017-09-20.pem"); 或者您可以使用curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 但是,不建議這樣做。
  3. 多虧了$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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM