Reputation: 1489
I have a working CLI
curl -X POST \
-H "X-Parse-Application-Id: ID" \
-H "X-Parse-REST-API-Key: KEY" \
-H "Content-Type: application/json" \
-d '{
"channels": [
"Giants",
"Mets"
],
"data": {
"alert": "The Giants won against the Mets 2-3."
}
}' \
https://api.parse.com/1/push
which returns a string {"result":"success"}
But my php curl
$post = json_encode(array('channels'=>array('Giants','Mets'),'data'=>array('alert'=>'The Giants won against the Mets 2-3')));
$ch = curl_init();
curl_setopt_array($ch, array(
CURLOPT_URL => 'https://api.parse.com/1/push',
CURLOPT_HTTPHEADER => array(
'X-Parse-Application-Id: ID',
'X-Parse-REST-API-Key: KEY',
'Content-Type: application/json'
),
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => $post,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_RETURNTRANSFER => true
));
$res = curl_exec($ch);
if (curl_error($ch)) {
echo "Curl error: " . curl_error($ch);
}
curl_close($ch);
echo $res;
shows the message "The page you were looking for doesn't exist." and then below that a "1" which is the $res
with no error
Thanks
Upvotes: 0
Views: 454
Reputation: 1
Please try:
curl_setopt_array($ch, array(
CURLOPT_URL => 'https://api.parse.com/1/push',
CURLOPT_HTTPHEADER => "X-Parse-Application-Id: ID\n" .
"X-Parse-REST-API-Key: KEY\n" .
"Content-Type: application/json",
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => $post,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_SSL_VERIFYPEER => false//not SSL verification
));
Upvotes: 0
Reputation: 53563
You're sending multiple headers with the same key, thus each is wiping out the previous. You have to send the headers as an array:
CURLOPT_HTTPHEADER => array(
'Content-type: text/plain',
'Content-length: 100',
'...'
)
Upvotes: 1
Reputation: 3178
you are in the array pass the same key: "CURLOPT_HTTPHEADER"
Please try:
curl_setopt_array($ch, array(
CURLOPT_URL => 'https://api.parse.com/1/push',
CURLOPT_HTTPHEADER => "X-Parse-Application-Id: ID\n" .
"X-Parse-REST-API-Key: KEY\n" .
"Content-Type: application/json",
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => $post,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_RETURNTRANSFER => true
));
Upvotes: 0