2015-05-13 7 views
1

У меня странная проблема с WNS и Push Notification для Windows \ windows phone devices (8.1). Если я отправлю push-уведомление, он работает хорошо. Проблема заключается в том, что я пытаюсь отправить WNS запрос X-WNS-Match. Я посылаю текущий заголовок:WNS X_WNS_MATCH неверный запрос

DELETE /?token=<CHANNEL> 
HTTP/1.1 
Host: db3.notify.windows.com 
Accept: */* 
Authorization: Bearer <TOKEN> 
content-type: text/xml 
X-WNS-Match: type=wns/toast;all 
Content-Length: 0 

Ответ от службы является:

HTTP/1.1 400 Bad Request 
Content-Length: 0 
X-WNS-STATUS: dropped 
X-WNS-ERROR-DESCRIPTION: Content type not supported 
X-WNS-MSG-ID: C51E1A17972EA7A 
X-WNS-DEBUG-TRACE: DB3WNS2011131 
Strict-Transport-Security: max-age=31536000; includeSubDomains 
Date: Wed, 13 May 2015 21:05:06 GMT 

Я также попытался установить в запрос водосборника:

X-WNS-Type: wns/toast 

сейчас я сомневаюсь: возможно, сервер, который не поддерживает метод DELETE для HTTP? Или, может быть, мне нужно установить что-то другое для типа контента? Я следовал документации WNS: https://msdn.microsoft.com/en-us/library/windows/apps/hh465435.aspx Я тестирование на azurewebsite (МИС) и на другом домене с сервером Apache 2.2.26

Просьбы PHP с завитком. Спасибо.

ответ

1

Я нашел проблему. Я не могу отправить тип содержимого для MATCH к WNS, поэтому я удалил строку:

curl_setopt($request,CURLOPT_POSTFIELDS, $template); 

Где шаблон был пуст, После этого, мне нужно, чтобы передать содержание длины (что требуется для HTTP) таким образом:

$Header["ContentLength"] = "Content-Length : ".strlen($template); 
curl_setopt($request,CURLOPT_HTTPHEADER, $Header); 

А статус ответа сейчас 200 OK

Спасибо однако, надеюсь, что это может помочь кому-то

+0

Спасибо! Это помогло мне. Я добавляю, что: 1) заголовок X-WNS-type должен быть удален 2) правильное значение X-WNS-Match начинается с 'type = wns', а не' type: wns', как указано в официальной документации! –

Смежные вопросы