经典ASP将CURL推送消息发送到parse.com

时间:2014-05-09 10:26:17

标签: php json curl asp-classic

我试图从基于经典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);
?>

2 个答案:

答案 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"

作为你的第一行。