2012-05-09 8 views
1

私のウェブサイトに接続する必要があるいくつかのWebサービスAPIがあります。 APIのほとんどは、このような何かを必要とする:カスタムヘッダーをRESTful呼び出しに渡すにはどうすればよいですか?

$data = file_get_contents("http://www.someservice.com/api/fetch?key=1234567890 

しかし、一つのWebサービスは、カスタムHTTPヘッダーに設定するAPIキーが必要です。このAPI URLへのリクエストを作成し、カスタムヘッダーを同時に渡すにはどうすればよいですか?

答えて

8

あなたはこのよう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); 
?> 
+1

+1;しかし、おそらくカールを本格的な選択肢に言及する価値があります。 – cmbuckley

+0

あなたの投稿を投稿するまで同じ回答を入力していたので、代わりにカールの例を提供しました。 – Rob

+0

私はcurlが良い選択肢(そして多くの場合もっと便利です)に同意しますが、この状況では 'file_get_contents'を使う必要があります。いい答えだ!ありがとう! –

3

あなたはカールを使用することができます。たとえば、次の質問に対する最善の解決策のための

$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); 
0
$context = stream_context_create(array(
'http' => array(
'method' => 'GET', 
'header' => 'CUSTOM HEADER HERE', 
) 
)); 

$result = file_get_contents($url, false, $context); 
+0

Stopsを使ったOopsのダブル投稿 –

関連する問題