簡體   English   中英

PHP通過身份驗證從遠程URL獲取XML-403錯誤

[英]PHP Get XML from Remote URL with Authentication - 403 Error

我有一個提供xml輸出的URL。 它需要一個用戶名和密碼,我可以使用以下格式通過瀏覽器訪問該用戶名和密碼:

http://username:password@url.com

但是,當我嘗試通過php文件訪問它時,我被禁止使用403:

$url = "http://username:password@url.com";


$xml = @simplexml_load_file($url);
print_r($http_response_header);

我已經嘗試使用curl並將用戶代理設置為瀏覽器,但這仍然沒有回顯數據。

$username = "user";
$password = "pass";
$process = curl_init("http://user:pass@url.com/feed?feed_id=1");
//curl_setopt($process, CURLOPT_HTTPHEADER, array('Content-Type: application/xml'));
curl_setopt($process, CURLOPT_HEADER, 1);
curl_setopt($process, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($process, CURLOPT_USERPWD, $username . ":" . $password);
curl_setopt($process, CURLOPT_TIMEOUT, 30);
curl_setopt($process, CURLOPT_RETURNTRANSFER, TRUE);
$return = curl_exec($process);
echo $return;

我也嘗試使用pear的http請求2,該請求也禁止使用403

我要訪問的服務器是通過PHP拒絕所有連接,還是有辦法解決? 謝謝!

您所請求的頁面似乎很挑剔。 確保發送所有標頭與瀏覽器完全相同。

  • 在Firefox中安裝Firebug,或使用Chrome的檢查器
  • 寫下請求受保護頁面時發送的所有標頭
  • 與瀏覽器完全一樣,從您的php腳本發送標頭。
  • 如果不起作用,請使用Wireshark確認您確實正確。

我懷疑頁面還會尋找用戶代理標頭,而不僅僅是密碼。

另一個問題可能是您擁有與服務器不同的IP,並且只有您的IP被列入了白名單。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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