Welcome!

Welcome to the official BlackBerry Support Community Forums.

This is your resource to discuss support topics with your peers, and learn from each other.

inside custom component

BlackBerry Push Development

Reply
New Contributor
Posts: 2
Registered: ‎03-15-2013
My Device: 9800 os7
My Carrier: idea

Unable to send notifcation using .net

[ Edited ]

Hi,




using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Text;
using System.Net;
using System.IO;

namespace PushSharp.Blackberry
{
    public partial class _Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {

            pushToWidget("Hi Anoop If You will Get Notifcation please miss call me 8130513899");

        }



       public bool pushToWidget(string pushedMessage)
        {
           // String BESAddress = "https://pushapi.eval.blackberry.com/mss/PD_pushRequest";
            //String BESWebserverListenPort = "pushPort";
            String widgetNotificationUrl = "https://pushapi.eval.blackberry.com/mss/PD_pushRequest";
            String pushUserName = "3457-
B730k4394m49rOr96r33M8t74303c51k728";
            String pushPassword = "smnBIWO3";


          //  String pushPort = "33215";
            string Boundary = "Boundary ";
            string DeliverBefore = DateTime.UtcNow.AddMinutes(5).ToString("s", System.Globalization.CultureInfo.InvariantCulture) + "Z";
            Response.Write(DeliverBefore);
            bool success = true;
            StringBuilder Data = new StringBuilder();
            Data.AppendLine("--" + Boundary);
            Data.AppendLine("Content-Type: application/xml; charset=utf-8");
            Data.AppendLine("");
            Data.AppendLine("<?xml version=\"1.0\"?>");
            Data.AppendLine("<!DOCTYPE pap PUBLIC \"-//WAPFORUM//DTD PAP 2.1//EN\">");
            Data.AppendLine("<pap>");
            Data.AppendLine("<push-message push-id=" + (char)34 + ID + (char)34 + " deliver-before-timestamp=" +

(char)34 + DeliverBefore + (char)34 + " source-reference=" + (char)34 + pushUserName + (char)34 + ">");
            Data.AppendLine("<address address-value=\"" + "push_all" + "\"/>");
            Data.AppendLine("<quality-of-service delivery-method=\"unconfirmed\"/>");
            Data.AppendLine("</push-message>");
            Data.AppendLine("</pap>");
            Data.AppendLine("--" + Boundary);
            Data.AppendLine("Content-Type: text/plain");
            Data.AppendLine("Push-Message-ID: " + ID);
            Data.AppendLine("");
            Data.AppendLine(pushedMessage);
            Data.AppendLine("--" + Boundary + "--");
            Data.AppendLine("");
            byte[] bytes = Encoding.ASCII.GetBytes(Data.ToString());

            Stream requestStream = null;
            HttpWebResponse HttpWRes = null;
            HttpWebRequest HttpWReq = null;
         
            try
            {
                //http://<BESName>:<BESPort>/push?DESTINATTION=<PIN/EMAIL>&PORT=<PushPort>&REQUESTURI=/
               // Build the URL to define our connection to the BES.

                String BESName = "cpxxxx.pushapi.eval.blackberry.com/mss/PD_pushRequest";

                string httpURL = "https://" + BESName + "/push?DESTINATION=2B838E45&PORT=33215&REQUESTURI=/";

             //   string httpURL = BESAddress + ":" + BESWebserverListenPort+ "/push?DESTINATION=" + pushPin + "&PORT=" + pushPort+ "&REQUESTURI=/";
                  
                //make the connection
                HttpWReq = (HttpWebRequest)WebRequest.Create(httpURL);
                HttpWReq.Method = ("POST");
                //add the headers nessecary for the push
                HttpWReq.ContentType = "text/plain";
                HttpWReq.ContentLength = bytes.Length;
                // ******* Test this *******
                HttpWReq.Headers.Add("X-Rim-Push-Id", "push_all" + "~" + DateTime.Now); //"~" +pushedMessage +
                HttpWReq.Headers.Add("X-Rim-Push-Reliability", "application-preferred");
                HttpWReq.Headers.Add("X-Rim-Push-NotifyURL", (widgetNotificationUrl + "push_all" + "~" + pushedMessage + "~" + DateTime.Now).Replace(" ", ""));

                // *************************
              
               // HttpWReq.Credentials = new MDSCredentials(pushUserName, pushPassword);
                HttpWReq.Credentials = new NetworkCredential(pushUserName, pushPassword);

                Console.WriteLine(pushedMessage);
                requestStream = HttpWReq.GetRequestStream();
                //Write the data from the source
                requestStream.Write(bytes, 0, bytes.Length);
                requestStream.Close();
                //get the response
                HttpWRes = (HttpWebResponse)HttpWReq.GetResponse();

                //if the MDS received the push parameters correctly it will either respond with okay or accepted
                if (HttpWRes.StatusCode == HttpStatusCode.OK || HttpWRes.StatusCode == HttpStatusCode.Accepted)
                {
                    success = true;
                }
                else
                {
                    success = false;
                }
                //Close the streams

                HttpWRes.Close();
                requestStream.Close();
            }
            catch (System.Exception e)
            {
                success = false;
            }

            return success;
        }


    }
}




Please check this code ,code is running fine and getting response success but not able to send  while wehn i use this code

http://stackoverflow.com/questions/13488116/blackberry-push-notification-using-c-sharp-as-server-sid...
 in php its work fine adn getting notification i don't know where am doing mistake

Retired
Posts: 311
Registered: ‎08-08-2012
My Device: BlackBerry Z10
My Carrier: Rogers

Re: Unable to send notifcation using .net

Hi,

 

It looks like you're sending to the wrong URL.

 

Your "httpUrl" variable should point to: https://cpxxxx.pushapi.eval.blackberry.com/mss/PD_pushRequest

And, remove the X-Rim headers you have.  They aren't needed.

Also, you make reference to BES in a couple of variable names.  You are pushing to public/BIS not BES which is enterprise.

 

Thanks,

 

Matt