Intereting Posts
Лучший способ кэширования результатов запросов, которые изменяются нечасто Создать пользователя с подготовленным заявлением MySQLi mysql pconnect, когда он закрывает соединение скачать файл csv ZF2: эквивалент getServiceLocator в форме Zend mysql_fetch_assoc () ожидает, что параметр 1 будет ресурсом, boolean задан в C: \ xampp \ htdocs \ qcc \ truckdelivery.php в строке 9 не выбрана база данных Как расширить и изменить модель поставщика в Laravel 5? Как добавить прослушиватель событий в динамически добавленное поле с помощью Symfony Forms PHP – Фильтрация по значению поля MySQL Ключ раздела Cassandra для данных временных рядов Символы на строку и строки в текстовом поле удалять информацию из таблицы mysql, когда пользователь закрывает свой браузер PHP Использование File_get_Contents () для предварительного заполнения формы Mongodb php получает идентификатор нового документа? MYSQLI :: prepare (), ошибка при использовании заполнителя: что-то

Azure центр уведомлений PHP

Я пытаюсь обновить регистрацию HUB-уведомлений с PHP. Здесь они показывают, как отправлять уведомления с PHP: http://azure.microsoft.com/en-us/documentation/articles/notification-hubs-php-backend-how-to/

И я попытался адаптировать код таким образом, чтобы использовать другие методы API: https://msdn.microsoft.com/en-us/library/azure/dn223262.aspx

public function updateRegistration($registrationId) { # build uri $uri = $this->endpoint . $this->hubPath . "/registrations/" . $registrationId . NotificationHub::API_VERSION; $ch = curl_init($uri); $contentType = "application/atom+xml;type=entry;charset=utf-8"; $token = $this->generateSasToken($uri); $headers = [ 'Authorization: '.$token, 'Content-Type: '.$contentType, 'x-ms-version: 2013-08', 'If-Match: update' ]; curl_setopt_array($ch, array( CURLOPT_POST => TRUE, CURLOPT_RETURNTRANSFER => TRUE, CURLOPT_SSL_VERIFYPEER => FALSE, CURLOPT_HTTPHEADER => $headers, CURLOPT_POSTFIELDS => '<?xml version="1.0" encoding="utf-8"?> <entry xmlns="http://www.w3.org/2005/Atom"> <content type="application/xml"> <WindowsRegistrationDescription xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.microsoft.com/netservices/2010/10/servicebus/connect"> <Tags>myTag, myOtherTag</Tags> </WindowsRegistrationDescription> </content> </entry>' )); // Send the request $response = curl_exec($ch); // Check for errors if($response === FALSE){ throw new Exception(curl_error($ch)); } $info = curl_getinfo($ch); if ($info['http_code'] <> 201) { throw new Exception('Error :'. $info['http_code'] . ' msg: ' . $response); } } 

Но я получаю эту ошибку:

"Ошибка: 405 msg: 405 Указанный HTTP-глагол (POST) недействителен."

Что я делаю неправильно?

Благодаря!

Согласно документации, он принимает только PUT .

Таким образом, код должен быть:

 curl_setopt_array($ch, array( CURLOPT_CUSTOMREQUEST => 'PUT', // add this line CURLOPT_POST => TRUE, CURLOPT_RETURNTRANSFER => TRUE, CURLOPT_SSL_VERIFYPEER => FALSE, CURLOPT_HTTPHEADER => $headers, CURLOPT_POSTFIELDS => '<?xml version="1.0" encoding="utf-8"?> <entry xmlns="http://www.w3.org/2005/Atom"> <content type="application/xml"> <WindowsRegistrationDescription xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.microsoft.com/netservices/2010/10/servicebus/connect"> <Tags>myTag, myOtherTag</Tags> </WindowsRegistrationDescription> </content> </entry>' ));