Get Platform Notification Services (PNS) feedback

Retrieves an Azure Storage container URL. The container has feedback data for the notification hub. The caller can then use the Azure Storage Services REST API to retrieve the contents of the container.

Request

Method Request URI HTTP version
GET https://{namespace}.servicebus.windows.net/{Notification Hub}/feedbackcontainer?api-version=2015-01 HTTP/1.1

Request headers

The following table describes required and optional request headers.

Request header Description
Content-Type application/xml;type=entry;charset=utf-8
Authorization SAS token generated as specified in Shared Access Signature Authentication with Service Bus.
x-ms-version 2015-01

Request body

None.

Response

The response includes an HTTP status code and a set of response headers.

Response codes

Code Description
200 Fetched the container URL.
401 Authorization failure. The access key was incorrect.
403 Request rejected because feature is not enabled for your SKU. Upgrade to Standard.

For information about status codes, see Status and Error Codes.

Response headers

None.

Response body

Upon success, an Azure Storage Container URL is returned, complete with authentication token.

For example:

https://pushpnsfb5702abf7f71e31.blob.core.windows.net/00000000000297200840?sv=2014-02-14&sr=c&sig=XXxxxxxxxxxxxxx%xxxx%2xxxxxxxxxxxxxxxxxxxxxxxxxx%3D&se=2015-05-01T00%3A00%3A22Z&sp=rl

The returned URL can then be used to navigate the container and fetch the contents using the Azure Storage Services REST API

The following shows example PNS feedback, which indicates WNS expired channels associated with two different notification message Ids:

<EnumerationResults ServiceEndpoint="---Removed---" ContainerName="00000000002001061088">
  <Blobs>
    <Blob>
      <Name>07272016</Name>
      <Properties>
        <Last-Modified>Wed, 27 Jul 2016 20:57:07 GMT</Last-Modified>
        <Etag>---Removed---</Etag>
        <Content-Length>7150</Content-Length>
        <Content-Type>application/octet-stream</Content-Type>
        <Content-Encoding />
        <Content-Language />
        <Content-MD5 />
        <Cache-Control />
        <Content-Disposition />
        <BlobType>BlockBlob</BlobType>
        <LeaseStatus>unlocked</LeaseStatus>
        <LeaseState>available</LeaseState>
      </Properties>
    </Blob>
  </Blobs>
  <NextMarker />
</EnumerationResults>

Get Blob named : 07272016

<?xml version="1.0" encoding="utf-16"?>
<PnsFeedback xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.microsoft.com/netservices/2010/10/servicebus/connect">
  <FeedbackTime>2016-07-27T20:47:10.8905532Z</FeedbackTime>
  <NotificationSystemError>ExpiredChannel</NotificationSystemError>
  <Platform>windows</Platform>
  <PnsHandle>---Removed---</PnsHandle>
  <NotificationId>215e3aba529b49da9b6d35c134147952-20160727204710-2001061088-1</NotificationId>
</PnsFeedback>

<?xml version="1.0" encoding="utf-16"?>
<PnsFeedback xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.microsoft.com/netservices/2010/10/servicebus/connect">
  <FeedbackTime>2016-07-27T20:56:34.1588971Z</FeedbackTime>
  <NotificationSystemError>ExpiredChannel</NotificationSystemError>
  <Platform>windows</Platform>
  <PnsHandle>---Removed---</PnsHandle>
  <NotificationId>82d1e0626bd14221be7298341ae9a7b3-20160727205634-2001061088-1</NotificationId>
</PnsFeedback>

Example code

Example code demonstrating this REST API is available in the azure-notificationhubs-samples GitHub repository.