POSTリクエストでJSONテキストをcURLを使用して送信しようとしています。 JSONテキストは次のとおりです。PHP POST経由でJSONを送信する(cURL)
{ "チャンネル": "マイチャンネル"、 "ユーザ名": "TriiNoxYs"、 "テキスト": "マイテキスト"}
私はこれを使用していますコード:
<?php
$data = array(
'username' => 'TriiNoxYs',
'channel' => 'My channel'
'text' => 'My text',
);
$data_json = json_encode($data);
$curl = curl_init('my-url');
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($curl, CURLOPT_POSTFIELDS, $data_json);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_HTTPHEADER, array(
'Content-Type: application/json',
'Content-Length: ' . strlen($data_json))
);
$result = curl_exec($curl);
echo $result ;
?>
コードは動作しますが、私はこのような "添付ファイル" 私のJSONテキストの配列、追加したい:
{ "チャンネル":「マイchannを"テキスト": "テキスト": "行1"、 "色": "#000000"}、{"テキスト": "私は私の$ data配列にこれを追加しようとしました "#1 FFFFFF"}]}
ので: "ライン2"、 "色"
'attachments' => '[{"text":"Line 1", "color":"#000000"}, {"text":"Line 2", "color":"#ffffff"}]',
しかし、働いていない、ポストは送信されますが、私の「添付ファイル」は無視されます... 私もこのコードで、Linuxのターミナルから直接POSTを送信しようとした:
POST https://myurl.com
payload={"channel": "My channel", "username": "TriiNoxYs", "text": "My text", "attachments": [{"text":"Line 1","color":"#000000"},{"text":"Line 2","color":"#ffffff"}]}
そして、それは働いています... 私はなぜそれが手動のPOSTで動作しているのか、PHP /カールではないのか分かりません...
あなたの答えは、TriiNoxYsありがとう。 PS:悪い英語で申し訳ありませんが、フランス語です...
を私はルールをチェックするのが面倒です私がフランス語で答えることができるかどうかを見るために、私は今のところ英語を固執します。 「添付ファイル」のデータが無視されているということはどういう意味ですか?あなたは彼らが$ _POSTに存在しないということを意味しますか?または、それらは空ですか? – Technoh
どうすれば確認できますか? – TriiNoxYs
受信側の完全な '$ _POST'を' var_dump 'して、正確なJSON文字列を見ることができます。 – Technoh