Cakephp에서 JSON POST를 보내는 방법
문제
이 작업을 정확하게 보낼 필요가 있습니다 :
POST http://api.outbound.io/api/v1/identify
Content-Type: application/json
{
"api_key": "MY_API_KEY",
"user_id": "MY_UNIQUE_USER_ID",
"traits" : {
"email" : "dhruv@outbound.io",
"name" : "Dhruv Mehta",
"phone" : "650xxxyyyyy"
}
}
.
나는 결코 이렇게하지 않았으며 나는 많은 연구를했지만 그 매개 변수를 해당 URL로 보내는 방법을 찾을 수 없었습니다.
나는 당신이 나에게 나를 도울 수 있기를 바랍니다. 제발 제발, 최고의 안부!
해결책
많은 연구 후에, 나는 그것을하는 방법을 알아 낸다 ...
1.-
를 사용하십시오App::uses('HttpSocket', 'Network/Http'); // you should put this on your controller
.
2.-이 기능
$HttpSocket = new HttpSocket();
.
3. 여기에 게시물을 통해 보내려는 데이터가 있습니다 (이 예에서는 사용한 변수를 사용하겠습니다. 바꿀 수 있고 일부를 다시 추가하거나 삭제할 수 있습니다. 원하는 정보에 따라 다릅니다. 보내기)
$data = array(
"api_key" => "API KEY",
"user_id" => $idUser,
"event" => "other",
"extra" => array(
"course" => $course,
"price"=> $price )
);
.
3. 헤더를 설정합니다
$request = array(
'header' => array('Content-Type' => 'application/json',
),
);
.
4. json_encode
$data = json_encode($data);
.
5. 여기서 게시물을 어디로 보내고 있습니까?, 어떤 데이터?, 요청 유형?,이 방법으로
$response = $HttpSocket->post('http://api.yourweburl.com/api/', $data, $request);
.
* .- 당신은이 스 니펫 주석 처리를 볼 수 있습니다
//pr($response->body());
.
* .- 마지막으로 모든 일이 끝나면 어딘가에 리디렉션을 원한다면 ..이 방법으로 ...
$this->redirect(array('action' => 'index'));
.
이와 같은 것이 있어야합니다.
public function actiontooutbound($idUser, $course, $price){
$HttpSocket = new HttpSocket();
$data = array(
"api_key" => "API KEY",
"user_id" => $idUser,
"event" => "other",
"extra" => array(
"course" => $course,
"price"=> $price )
);
$request = array(
'header' => array(
'Content-Type' => 'application/json',
),
);
$data = json_encode($data);
$response = $HttpSocket->post('http://api.outbound.io/api/v1/track', $data, $request);
// pr($data);
//pr($response->body());
$this->redirect(array('action' => 'index'));
.
}
다른 함수 에서이 함수를 호출하는 방법 (경우에 따라)
$this->actiontooutbound($idUser, $course, $price);
.
질문이 있으시면 이제 당신을 도와 드리겠습니다.)
다른 팁
PHP 에서이 작업을 수행하려면 곱슬을 사용합니다.다음은 테스트되지 않으므로 올바른 보증이 없으므로 :
$json = array(
'api_key' => 'My_API_KEY',
'user_id' => 'MY_UNIQUE_USER_ID',
'traits' => array(
'email' =< 'dhruv@outbound.io',
'name' => 'Dhrub Mehta',
'phone' => '650xxxyyyyy'
)
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_HTTPHEADERS, array('Content-Type: application/json'));
curl_setopt($ch, CURLOPT_URL, 'http://api.outbound.io/api/v1/identify');
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($json));
curl_setopt($ch, CURLOPT_POST, 1);
$results = curl_exec($ch);
if (curl_errno($ch)) {
debug(curl_error($ch));
} else {
curl_close($ch);
}
return $results;
. 제휴하지 않습니다 StackOverflow