2016-06-27 16 views
0

私はWorkWave APIという名前のPHPでPOSTリクエストを作成しようとしています。これは、彼らがアプリケーションのコールバックURLを設定するためにPOSTリクエストを作成するための提供のコードです:次のHTTP + JSONを指定してPHPでPOSTリクエストを行う方法

POST /api/v1/callback HTTP/1.0 
Accept: application/json 
X-WorkWave-Key: YOUR API KEY 
Host: wwrm.workwave.com 
Content-Type: application/json 

{ 
    "url": "https://my.server.com/new-callback", 
    "signaturePassword": "g394g732vhsdfiv34", 
    "test": true 
} 

私はPOSTを処理するかなり新しいですし、GETリクエストので、私は本当にここで何が起こっているのか理解していません。 JSON括弧の上にある値の&の値はどういうものですか? ここで与えられたものをPHPにどのように翻訳するのですか?そのときに理解するために最も重要なことは何ですか?

答えて

1

最初のブロブは、リクエストとともに送信する必要があるヘッダーです。 JSONはポストボディペイロードです。

<?php 

$url = 'https://wwrm.workwave.com/api/v1/callback'; 

$data = ' 
{ 
    "url": "https://my.server.com/new-callback", 
    "signaturePassword": "g394g732vhsdfiv34", 
    "test": true 
} 
'; 

$additional_headers = array(                   
    'Accept: application/json', 
    'X-WorkWave-Key: YOUR API KEY', 
    'Host: wwrm.workwave.com', 
    'Content-Type: application/json' 
); 

$ch = curl_init($url);                  
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");                  
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);                 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);                  
curl_setopt($ch, CURLOPT_HTTPHEADER, $additional_headers); 

$server_output = curl_exec ($ch); 

echo $server_output; 
+0

それとも、生 'curl'要求のための非常に人気の、きれいなラッパーである[がつがつ食う](http://docs.guzzlephp.org/en/latest/)を使用することができます。 – Pevara

+0

クールなので、これらのヘッダーは、要求に先行する情報です、正しいですか?イメージをリクエストしたいとしましょう。ヘッダーの特定のリソースを取得したいと指定する必要があります。データを取得する場合や、GET/POSTリクエストとはまったく別の場合は、データベースへのクエリでヘッダーも使用されますか? – 10000RubyPools

+0

@ 10000Rでは、データベースクエリはHTTP要求とは完全に無関係です。あなたがウェブサイトに行くたびに、あなたはHTTPリクエストをしています。すべてのリクエスト*にはヘッダーが必要です。*必須のフィールド(URLなど)を含める必要があります。 Curlは、これらの要件を要求オブジェクトに組み込みます。 'CURLOPT_HTTPHEADER'は追加ヘッダのためのものであり、HTTP仕様では必ずしも必要ではないが、サーバにとっては依然として有用である。これらのヘッダーが要求に先行するわけではなく、要求の一部です。すべてのリクエストがボディまたはデータペイロードを持つ必要はありません。あなたはイメージの要求について正しいです。 –

関連する問題