2017-08-10 17 views
0

嘗試使用PHP cURL遠程檢索網絡攝像頭圖像時,出現「連接被拒絕」錯誤。 如果我嘗試使用本地計算機瀏覽器中的URL檢索圖像,系統會提示輸入憑據,然後它會顯示圖像。這是爲什麼發生?誰在請求圖片時應該沒有什麼區別,不管是我本人還是其他服務器上的腳本,都是正確的?使用PHP cURL檢索圖像時拒絕連接

我的代碼:

<?php 
$token = "user:password"; 
$url = "http://000.000.000.000:000/cgi-bin/image.jpg"; 

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, $url); 
curl_setopt($ch, CURLOPT_HTTPGET, true); 
curl_setopt($ch, CURLOPT_USERPWD, $token); 
/*curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY);*/      
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 

if(curl_exec($ch) === false){ 
    echo curl_error($ch); 
}else{ 
    $data = curl_exec($ch); 
} 
curl_close($ch); 

echo "<pre>"; 
print_r($data); 
echo "</pre>"; 
?> 
+0

可能的重複[如何使用PHP curl使用HTTP基本身份驗證進行請求?](https://stackoverflow.com/questions/2140419/how-do-i-make-a-request-using-http - 基本的身份驗證與 - PHP捲曲) –

回答

1

這是最有可能Basic access authentication。如果你在瀏覽器的URL它顯示了一個登錄彈出,但你也可以包括這樣的URL中的用戶名和密碼:

https://Aladdin:[email protected]/index.html 

在這種情況下,這將是:

$url = "http://user:[email protected]:000/cgi-bin/image.jpg"; 

編輯由於您使用的是curl,因此它具有發送身份驗證標頭的功能。

curl_setopt($process, CURLOPT_USERPWD, $username.':'.$password); 

在這種情況下:

curl_setopt($process, CURLOPT_USERPWD, $token); 

此外,請參閱this answer