CakePHPにJSON投稿を送信する方法
質問
これを正確に送る必要があります:
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. - POST経由で送信したいデータが表示されます(この例では、使用した変数を使用します。送信する)
$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 IT
$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'));
.
}
これは、この関数を別の関数から呼び出す方法です(keas incase
$this->actiontooutbound($idUser, $course, $price);
.
あなたが質問があるなら、私はあなたを助けて幸せになるでしょう;)
他のヒント
PHPでこれをやりたい場合は、CURLを使用します。以下はテストされていないので、正しいことを保証しません:
$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