2016-04-19 14 views
1

PHPを使用して「OPTIONS」リクエストを送信する方法を知っている人はいませんか。PHPを使用してOPTIONSリクエストを送信する方法

私はこれを行うカールsetoptを見つけることができません。

私はPHP 5.6.7

を使用している私は、GET、POSTを考え出しDELETE、およびPUTました。 OPTIONSが必要です。

私は以下のHDの答え試してみました:

$ch = curl_init(); 
curl_setopt($ch,CURLOPT_URL,"theurl"); 
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "OPTIONS"); 
$r = curl_exec($ch); 
print_r($http_response_header); 
curl_close($ch); 

を、私はエラーを取得しています:

Undefined variable: http_response_header in C:\IIS_Emea\WebRoot\Site01\test\rest1.php on line 7 

にはどうすればいい結果を得るのですか?

+0

いいえ - 重複はありません - その投稿にはオプションが記載されていません – Graham

+0

HEADに似ていて、 'CURLOPT_CUSTOMREQUEST'を使用してください。 –

+0

@Grahamはい私は誤読して閉じてしまいました。 –

答えて

4
<?php 

$ch = curl_init(); 
curl_setopt_array($ch, array(
    CURLOPT_URL => 'http://stackoverflow.com/', 
    CURLOPT_CUSTOMREQUEST => 'OPTIONS', 
    CURLOPT_RETURNTRANSFER => true, 
    CURLOPT_HEADER => true, 
    CURLOPT_NOBODY => true, 
    CURLOPT_VERBOSE => true, 
)); 
$r = curl_exec($ch); 

echo PHP_EOL.'Response Headers:'.PHP_EOL; 
print_r($r); 
curl_close($ch); 

設定するcurl_setoptを使用することができます。

  1. CURLOPT_CUSTOMREQUEST => 'OPTIONS'を - HTTPリクエストメソッドを定義します。
  2. CURLOPT_RETURNTRANSFER => true - tell curl_exec結果が出力されずに返されます。
  3. CURLOPT_HEADER => true - リターンヘッダー。
  4. CURLOPT_NOBODY => true - 返送しないでください。
  5. CURLOPT_VERBOSE => true - デバッグの場合は、本番環境で削除してください。それは、ライブラリによって行われた要求と受け取った応答を見ることができます。

スクリプトからの出力は、あなたが文字列としてレスポンスヘッダを取得し、あなたがそれを解析する必要があり、この

* Trying 104.16.36.249... 
* Connected to stackoverflow.com (104.16.36.249) port 80 (#0) 
> OPTIONS/HTTP/1.1 
Host: stackoverflow.com 
Accept: */* 

< HTTP/1.1 200 OK 
< Date: Wed, 20 Apr 2016 09:02:44 GMT 
< Content-Type: text/html; charset=utf-8 
< Transfer-Encoding: chunked 
< Connection: keep-alive 
< Set-Cookie: __cfduid=d96e454843a81721eeb77cc4ebb49d2c91461142964; expires=Thu, 20-Apr-17 09:02:44 GMT; path=/; domain=.stackoverflow.com; HttpOnly 
< Cache-Control: public, no-cache="Set-Cookie", max-age=60 
< Expires: Wed, 20 Apr 2016 09:03:44 GMT 
< Last-Modified: Wed, 20 Apr 2016 09:02:44 GMT 
< Vary: * 
< X-Frame-Options: SAMEORIGIN 
< X-Request-Guid: a2f90416-9ec1-4ec9-b2d9-a69e22cc05d5 
< Set-Cookie: prov=37be6386-6390-40fb-9f0a-42efdfcf2d71; domain=.stackoverflow.com; expires=Fri, 01-Jan-2055 00:00:00 GMT; path=/; HttpOnly 
< Server: cloudflare-nginx 
< CF-RAY: 29676b4517f92b21-WAW 
< 
* Excess found in a non pipelined read: excess = 725 url =/(zero-length body) 
* Connection #0 to host stackoverflow.com left intact 

Response Headers: 
HTTP/1.1 200 OK 
Date: Wed, 20 Apr 2016 09:02:44 GMT 
Content-Type: text/html; charset=utf-8 
Transfer-Encoding: chunked 
Connection: keep-alive 
Set-Cookie: __cfduid=d96e454843a81721eeb77cc4ebb49d2c91461142964; expires=Thu, 20-Apr-17 09:02:44 GMT; path=/; domain=.stackoverflow.com; HttpOnly 
Cache-Control: public, no-cache="Set-Cookie", max-age=60 
Expires: Wed, 20 Apr 2016 09:03:44 GMT 
Last-Modified: Wed, 20 Apr 2016 09:02:44 GMT 
Vary: * 
X-Frame-Options: SAMEORIGIN 
X-Request-Guid: a2f90416-9ec1-4ec9-b2d9-a69e22cc05d5 
Set-Cookie: prov=37be6386-6390-40fb-9f0a-42efdfcf2d71; domain=.stackoverflow.com; expires=Fri, 01-Jan-2055 00:00:00 GMT; path=/; HttpOnly 
Server: cloudflare-nginx 
CF-RAY: 29676b4517f92b21-WAW 

のように見えます。しかし、私はこれが問題の範囲外であると思う。

+0

優秀 - それは仕事をする - ありがとう – Graham

0

あなたはそれが何のカスタム要求

curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'OPTIONS'); // HTTP request is 'OPTIONS' 
+0

返された内容はどうやって読むのですか? – Graham