2011-09-27 119 views
1

我想爲url設置一個請求頭xyz.com 它是在php中設置它的正確方法嗎?設置OAuth授權標頭的正確方法?

header('Authorization: AuthSub token="xxxxxx"'); 
header('location:https://www.google.com/accounts/AuthSubRevokeToken'); 

我想設置頁眉此URL的call.But授權:頭的AuthSub在犯規火狐NET panel.Which的請求頭部分中顯示了用於顯示的要求。

有什麼想法嗎? Thanx。

我以前使用過curl,但它似乎沒有發出任何請求,因爲我無法在FireFox的NET面板中看到它。 代碼如下:

$curl = curl_init(); 

    curl_setopt($curl, CURLOPT_URL,"https://www.google.com/accounts/AuthSubRevokeToken"); 
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); 
    curl_setopt($curl, CURLOPT_FAILONERROR, true); 
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); 
    curl_setopt($curl, CURLOPT_HTTPHEADER, array('Authorization: AuthSub token="1/xxx"' 
        )); 
    $result = curl_exec($curl); 
    curl_close($curl);    
    echo 'hererer'.$result;exit; 
+1

你不能「看到」螢火的Firefox中的淨面板PHP腳本的捲曲請求。所以沒關係沒有顯示。 – hakre

+0

是Hakre,我現在明白了。但它甚至不會在curl_exec()的打印中顯示任何內容,它應該回復一個HTTP 200消息,他們在手冊 –

回答

1

header套響應頭,而不是請求頭。 (如果您嘗試在其他地方發送HTTP請求,則不起作用。)

請注意手冊中關於Remember that header() must be called before any actual output is sent, ...的說明。

然後在使用header()之前打開error_reporting(E_ALL);以查看這是否是您的問題。

1

頭名和值需要由一個冒號加一個空格隔開,所以位置「頭」是錯誤的,它應該是:

header('Location: https://www.google.com/accounts/AuthSubRevokeToken'); 

(這是常見的寫的情況下這種方式,但不是必要的)

接下來header功能是設置響應頭,而不是請求頭。所以你基本上使用了錯誤的工具。

在PHP中,您無法設置請求標頭,這是客戶端(例如瀏覽器)的一部分,而不是服務器。所以header在這裏看起來不對。你使用哪個HTTP客戶端?

+0

Mozilla FireFox中說。 –

+0

這與OAuth相關嗎? – hakre

+0

是Hakre,它實際上與YouTube的AuthSub有關。 –

1

一個調用,如使用CURL請求另一個頁面? header()函數僅適用於Web瀏覽器< - >服務器通信。它不會影響您的服務器端腳本對其他Web服務器的任何請求。爲此,您需要修改您正在使用的特定方法,例如捲曲或流。

對於捲曲,看到這裏CURLOPT_HTTPHEADERhttp://php.net/curl_setopt

+0

Hello Marc,我試圖使用curl,但它沒有發出任何請求,我不知道爲什麼。我沒有看到在FireFoz的NET面板中生成的ne請求。我將編輯代碼以將我的curl代碼放在那裏。 –

+1

curl在服務器上運行...客戶端網絡監視器永遠不會看到它,因爲該請求將永遠不會進入客戶端的網絡 –

+0

我看到Marc,但它不會在響應變量中輸出任何輸出手冊說它應該回到我的HTTP 200消息。我看不到在curl_exec打印。 –