我有一个带有多个文本和文本区域输入字段的自制Web界面。主要文本字段通过REST API以PHP脚本发送到Parse。它很有效,直到我在其中一个textarea输入字段中输入大约3.000个以上的字符。
低于约。 3.000个字符,一切正常。当高于约。 3.000个字符,数据被发送到解析,我可以在我的仪表板中的其他推送消息中看到它,并在“状态”中带有绿色复选标记,但推送通知不会发送到任何订阅的设备!
我正在使用它发送新闻文章,因此必须能够发送大约上面的整篇文章。 3.000个字符。
是否有关于要发送的字符数量或类似内容的限制?
有没有人知道可以帮助我的事情,或者对如何解决这个问题有任何建议?!
我的脚本的解析部分:
/*
* PUSHING THE ARTICLE NOTIFICATION TO DEVICES SUBSCRIBING TO SPECIFIC CHANNELS(S)
*/
$url = PUSH_URL;
$appId = PUSH_APP_ID;
$restKey = PUSH_REST_KEY;
$channels = array($channelArray);
$headers = array(
"Content-Type: application/json",
"X-Parse-Application-Id: " . $appId,
"X-Parse-REST-API-Key: " . $restKey
);
$objectData = json_encode(array(
"data" => array(
"id" => $id ,
"watchTitle" => stripslashes($watchTitle) ,
"title" => $textTitle ,
"alert" => $textSubtitle ,
"mainText" => $textMain ,
"imgUrl" => $imgUrl ,
"uri" => "http://watch.jgskytte.com/parse/article.php?p=" . $id ,
),
"channels" => $channels ,
));
$rest = curl_init($url);
curl_setopt($rest, CURLOPT_HTTPHEADER, $headers);
curl_setopt($rest, CURLOPT_POST, true);
curl_setopt($rest, CURLOPT_POSTFIELDS, $objectData);
curl_setopt($rest, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($rest);
echo $response;
curl_close($rest);
答案 0 :(得分:0)
字符串长度没有明确限制,但解析对象限制为128k。否则,您应该使用解析文件。
这可能是因为您达到了URL的最大长度限制。为了解决这个问题,你可以使用POST请求,它将查询字符串作为HTTP请求体的一部分发送,该请求体没有这样的长度限制。
由于Parse的REST API希望将此查询作为GET请求发送,因此您需要传递一个额外的标头,让Parse知道将此POST视为GET:
X-HTTP-Method-Override: GET