Я пытаюсь создать запрос HTTP POST, с помощью PHP + Curl, что эквивалентно, например упомянутый here файла «SendToast.aspx.cs»HTTP POST запрос с PHP + Curl
Мой PHP-файл выглядит следующим образом ниже ,
<?php
$uri = $_POST["uri"];
$title = $_POST["title"];
$subtitle = $_POST["subtitle"];
$file = 'file.txt';
//phpinfo();
$theData = '<?xml version="1.0" encoding="utf-8"?>\\r';
$theData .= "<wp:Notification xmlns:wp=\"WPNotification\">";
$theData .= "<wp:Toast>";
$theData .= "<wp:Text1>" .$title;
$theData .= "</wp:Text1>";
$theData .= "<wp:Text2>" .$subtitle;
$theData .= "</wp:Text2>";
$theData .= "<wp:Param>/Page2.xaml?NavigatedFrom=Toast Notification</wp:Param>";
$theData .= "</wp:Toast>";
$theData .= "</wp:Notification>";
$header_array = array('X-WindowsPhone-Target' => 'toast','X-NotificationClass' => '2','Content-type:' => 'text/xml','Content-length:' => strlen($theData));
$ch = curl_init();
curl_setopt($ch, CURLOPT_HTTPHEADER,$header_array);
curl_setopt($ch, CURLOPT_URL,$uri);
curl_setopt($ch, CURLOPT_TIMEOUT, 60);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS,$theData);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
//print_r($ch);
$server_output = curl_exec ($ch);
//echo $server_outout;
//curl_close ($ch);
if (curl_errno($ch))
{
print "Error: " . curl_error($ch);
}
else
{
// Show me the result
print $server_output;
curl_close($ch);
}
//file_put_contents($file, $theData);
?>
может кто-нибудь сказать мне, что я делаю неправильно здесь ?, я также пытался использовать HTTPRequest Class, чтобы создать этот пример, но я имел трудное время настройки расширения php_http.dll, кажется, файл имеет либо зависимости, либо его коррумпированность. тем не менее помощь в этом была бы большой.
Не могли бы вы сообщить нам ошибки или неправильное поведение, которое вы испытываете. –
жаль приятеля, но я не очень хорошо знаком с функциями вывода php, что я могу сказать, если все работает нормально, оно отправляет уведомление моему телефонному приложению (пример ASP отлично работает и отправляет уведомление, означает, что phoneapp одобрен для получения), переменная server_output ничего не возвращает, ее пустое значение, или может быть, я не знаю, как точно распечатать его, можете ли вы намекнуть мне, как я могу печатать коды ошибок или данные ответа? это было бы очень полезно – maxchirag
Вы забыли кодировать данные POST: curl_setopt ($ ch, CURLOPT_POSTFIELDS, urlencode ($ theData)); – hindmost