C# 无法从webapi向IOS发送推送通知?

C# 无法从webapi向IOS发送推送通知?,c#,.net,asp.net-web-api,C#,.net,Asp.net Web Api,您好,我正在webapi中开发web应用程序并创建推送通知。下面是我面临的问题。每当我写下面的代码,我就能够发送消息 String payload; string strmsgbody = ""; int totunreadmsg = 20; strmsgbody = "Hey Ashish"; Request.SaveAs(System.Web.HttpContext.Current.

您好,我正在webapi中开发web应用程序并创建推送通知。下面是我面临的问题。每当我写下面的代码,我就能够发送消息

      String payload;
                string strmsgbody = "";
                int totunreadmsg = 20;
                strmsgbody = "Hey Ashish";
 Request.SaveAs(System.Web.HttpContext.Current.Server.MapPath("APNSduringdevice.txt"), true);
                payload = "{\"aps\":{\"alert\":\"" + strmsgbody + "\",\"badge\":" + totunreadmsg.ToString() + ",\"sound\":\"mailsent.wav\"},\"acme1\":\"bar\",\"acme2\":42}";
每当我用下面的代码替换strmsgbody时

string IOSmessage = "XYZ Financing" + RequestType;
            string IOScontentTitle = RequestType + " status updated.";
            string IOSpostData =
          "{\"data\": {\"contentTitle\":\"" + IOScontentTitle + "\", " +
                       "\"message\": \"" + status + "\"}}";
在调试器中,我可以看到下面为上面的代码生成的代码

"{\"aps\":{\"alert\":\"{\"data\": {\"contentTitle\":\"Lease status updated.\", \"message\": \"CompletedStatusmessage\"}}\",\"badge\":20,\"sound\":\"mailsent.wav\"},\"acme1\":\"bar\",\"acme2\":42}"

我无法发送消息。我可以知道我在上面的代码中遗漏了什么吗?任何帮助都将不胜感激。多谢各位

在iOS设备上获取推送通知的有效负载应为

{
    "aps" : {
        "alert" : {
            "title" : "Lease status updated.",
            "body" : "CompletedStatusmessage"
        },
        "badge" : 20,
        "sound" : "mailsent.wav "
    },
    "acme1" : "bar",
    "acme2" : 42
}
你要送什么

    "{
    "aps ":{
      " alert ":" {
        "data": {
            "contentTitle": "Lease status updated.",
            "message": "CompletedStatusmessage"
        }
    }

",
" badge ":20,
" sound ":"mailsent.wav "},
" acme1 ":" bar ",
  " acme2 ":42
}"

在iOS设备上获取推送通知的有效负载应为

{
    "aps" : {
        "alert" : {
            "title" : "Lease status updated.",
            "body" : "CompletedStatusmessage"
        },
        "badge" : 20,
        "sound" : "mailsent.wav "
    },
    "acme1" : "bar",
    "acme2" : 42
}
你要送什么

    "{
    "aps ":{
      " alert ":" {
        "data": {
            "contentTitle": "Lease status updated.",
            "message": "CompletedStatusmessage"
        }
    }

",
" badge ":20,
" sound ":"mailsent.wav "},
" acme1 ":" bar ",
  " acme2 ":42
}"

strmsgbody是未转义的json。如果我接受调试器的输出,我将得到
“警报”:“{”数据“{”contentTitle“:“租约状态已更新”,“消息“:“CompletedStatusmessage”}>,
。感谢您的评论。我应该在上面的代码中更改什么?我对苹果的通知有点模糊,因为我们通过第三方发送我们的通知,但我认为您需要将
alert\:\“+strmsgbody+”,
更改为
alert\:“+strmsgbody+”,
。老实说,我建议只使用C#中的类构建数据,然后序列化为JSON。如果我接受调试器的输出,我将得到
“警报”:“{”数据“{”contentTitle“:“租约状态已更新”,“消息“:“CompletedStatusmessage”}>,
。感谢您的评论。我应该在上面的代码中更改什么?我对苹果的通知有点模糊,因为我们通过第三方发送我们的通知,但我认为您需要将
alert\:\“+strmsgbody+”,
更改为
alert\:“+strmsgbody+”,
。老实说,我建议只使用C#中的类构建数据,然后序列化为JSON。感谢您的评论swetansh kumar。你能给我一个以上正确格式的示例代码吗?嗨,斯维坦什·库马尔。这是我的。有效载荷=“{\'aps\”:{\'alert\”:\“+strmsgbody+”,“badge\”:“+totunreadmsg.ToString()+”,“sound\”:“mailsent.wav\”,“acme1\”:“bar\”,“acme2\”:42}”@NiranjangodOLE您的负载包含作为字符串的徽章。请将其设置为整数。将徽章值更改为int将使有效负载正确。感谢您的评论swetansh kumar。你能给我一个以上正确格式的示例代码吗?嗨,斯维坦什·库马尔。这是我的。有效载荷=“{\'aps\”:{\'alert\”:\“+strmsgbody+”,“badge\”:“+totunreadmsg.ToString()+”,“sound\”:“mailsent.wav\”,“acme1\”:“bar\”,“acme2\”:42}”@NiranjangodOLE您的负载包含作为字符串的徽章。请将其设置为整数。将徽章值更改为int将使有效负载正确。