我需要爲我的網站連接一些網絡服務API。大多數的API涉及到這樣的事情:如何將自定義標頭傳遞給RESTful調用?
$data = file_get_contents("http://www.someservice.com/api/fetch?key=1234567890
但是一個Web服務需要自定義HTTP標頭中設置的API密鑰。我如何向這個API url發送請求並同時傳遞自定義標題?
我需要爲我的網站連接一些網絡服務API。大多數的API涉及到這樣的事情:如何將自定義標頭傳遞給RESTful調用?
$data = file_get_contents("http://www.someservice.com/api/fetch?key=1234567890
但是一個Web服務需要自定義HTTP標頭中設置的API密鑰。我如何向這個API url發送請求並同時傳遞自定義標題?
您可以使用stream_context_create這樣的:
<?php
$options = array(
'http'=>array(
'method'=>"GET",
'header'=>"CustomHeader: yay\r\n" .
"AnotherHeader: test\r\n"
)
);
$context=stream_context_create($options);
$data=file_get_contents('http://www.someservice.com/api/fetch?key=1234567890',false,$context);
?>
你可以使用捲曲。例如:
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://www.someservice.com/api/fetch?key=1234567890');
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Header: value'));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($ch);
curl_close($ch);
$context = stream_context_create(array(
'http' => array(
'method' => 'GET',
'header' => 'CUSTOM HEADER HERE',
)
));
$result = file_get_contents($url, false, $context);
哎呀雙Stewe –
1用於向所述問題的最佳解決方案;然而,它可能是值得一提的捲曲作爲一個完全成熟的選擇。 – cmbuckley
我直接輸入相同的答案,直到你發佈你的答案,所以我提供了一個捲曲的例子。 – Rob
我同意curl是一個很好的選擇(在許多情況下更有用),但我需要在這種情況下使用'file_get_contents'。好答案!謝謝! –