Blackberry Push-уведомление с использованием C # на стороне сервера

Я пытаюсь отправить push-уведомление в BlackBerry с помощью веб-службы C #, но у меня возникла проблема с возвратом исключения "Удаленный сервер возвратил ошибку: (404) Not Found. ", Вся информация верна в соответствии со стандартом RIM, поэтому, пожалуйста, помогите мне как можно скорее.

 [WebMethod]
public bool push(string notification)
{
    bool success = true;
    byte[] bytes = Encoding.ASCII.GetBytes("Hello");

    Stream requestStream = null;
    HttpWebResponse HttpWRes = null;
    HttpWebRequest HttpWReq = null;


    String BESName = "cp****.pushapi.eval.blackberry.com";
    try
    {
        //http://:/push?DESTINATTION=&PORT=&REQUESTURI=/
        // Build the URL to define our connection to the BES.
        string httpURL = "https://" + BESName +  "/push?DESTINATION=2B838E45&PORT=32721&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", "2B838E45" + "~" + DateTime.Now); //"~" +pushedMessage +
        HttpWReq.Headers.Add("X-Rim-Push-Reliability", "application-preferred");
        HttpWReq.Headers.Add("X-Rim-Push-NotifyURL", ("http://" + BESName + "2B838E45~Hello~" + DateTime.Now).Replace(" ", ""));

        // *************************
        HttpWReq.Credentials = new NetworkCredential("Username", "Password");

        requestStream = HttpWReq.GetRequestStream();
        //Write the data from the source
        requestStream.Write(bytes, 0, bytes.Length);

        //get the response
        HttpWRes = (HttpWebResponse)HttpWReq.GetResponse();

        var pushStatus = HttpWRes.Headers["X-RIM-Push-Status"];

        //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)
    {
        success = false;
    }

    return success;
}
 Sarah26 июн. 2013 г., 07:40
Вам удалось решить проблему?

Ответы на вопрос(1)

когда попробовал ваш код выше. замещать

String BESName = "cp****.pushapi.eval.blackberry.com";

С

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

и убедитесь, что вы ввели правильное имя пользователя и пароль здесь:

HttpWReq.Credentials = new NetworkCredential("username", "password");

Я получил успех = правда;

Однако, несмотря на то, что приведенный выше код успешно выполнен, я все еще не вижу push-сообщения на устройстве BlackBerry.

Ваш ответ на вопрос