2016-06-27 1 views
0

PHP로 WorkWave API이라는 이름으로 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

첫 번째 BLOB는 요청과 함께 보내야하는 헤더입니다. 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

아니면 사용할 수 있습니다 [폭식] (http://docs.guzzlephp.org/en/latest/) 원시'curl' 요청에 대한 매우 인기있는 깨끗한 래퍼이다. – Pevara

+0

좋아,이 머리글은 정보를 요청하기 전에 선행, 맞습니까? 이미지 요청을 원한다고 가정하면 헤더의 특정 리소스를 가져 오도록 지정해야합니다. 데이터베이스에 대한 쿼리는 데이터를 가져올 때 헤더를 사용합니까, 아니면 GET/POST 요청과 완전히 별개입니까? – 10000RubyPools

+0

@ 10000R, 데이터베이스 쿼리는 HTTP 요청과 완전히 관련이 없습니다. 웹 사이트에 갈 때마다 HTTP 요청을합니다. 모든 요청은 URL과 같은 몇 가지 필수 필드를 포함해야하는 헤더를 가져야합니다. Curl은 이러한 요구 사항을 요청 개체에 작성합니다. 'CURLOPT_HTTPHEADER'는 추가적인 헤더를위한 것으로, HTTP 스펙에 반드시 필요하지는 않지만 서버에는 여전히 유용합니다. 이러한 헤더가 요청 앞에 오는 것이 아니라 요청의 일부입니다. 모든 요청이 본문 또는 데이터 페이로드를 가져야하는 것은 아닙니다. 당신은 이미지 요청에 대해 옳습니다. –

관련 문제