我试图从基于经典ASP的网站向parse.com发送推送消息。下面是我的代码,下面是PHP等价物。没有错误消息。 (用xxx替换了客户端数据。)有什么建议吗?
ASP代码:
<%
Set xmlHttp = Server.CreateObject("Microsoft.XMLHTTP")
xmlHttp.Open "POST", strUrl, False
xmlHttp.setRequestHeader "X-Parse-Application-Id", "xxx"
xmlHttp.setRequestHeader "X-Parse-REST-API-Key", "xxx"
xmlHttp.setRequestHeader "Content-Type", "application/json"
xmlHttp.Send "{ ""data"": [ { ""channel"": ""xxx"" }, { ""alert"": ""Test Push"" }, { ""sound"": ""push.caf"" } ] }"
set xmlHttp = Nothing
%>
PHP代码:
<?php
$APPLICATION_ID = "xxx";
$REST_API_KEY = "xxx";
$url = 'https://api.parse.com/1/push';
$data = array(
'channel' => 'xxx',
'data' => array(
'alert' => 'Test Push',
'sound' => 'push.caf',
),
);
$_data = json_encode($data);
$headers = array(
'X-Parse-Application-Id: ' . $APPLICATION_ID,
'X-Parse-REST-API-Key: ' . $REST_API_KEY,
'Content-Type: application/json',
'Content-Length: ' . strlen($_data),
);
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, $_data);
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
curl_exec($curl);
?>
答案 0 :(得分:1)
看起来你的JSON不等同(@Kul-Tigin中指出的comments)。
查看您的PHP JSON对象,经典ASP应该是;
xmlHttp.Send "[ { ""channel"": ""xxx"" }, { ""data"": [ { ""alert"": ""Test Push"" }, { ""sound"": ""push.caf"" } ] } ]"
如果你将其分解(使用PHP JSON对象);
$data
是一个数组(包含)[]
channel
是一个对象{ ""channel"": ""xxx"" }
data
是一个数组(包含){ ""data"": [] }
alert
是一个对象{ ""alert"": ""Test Push"" }
sound
是一个对象{ ""sound"": ""push.caf"" }
答案 1 :(得分:0)
假设这是您的所有代码,变量strUrl不会设置为任何内容。
添加:
strUrl = "https://api.parse.com/1/push"
作为你的第一行。