我尝试向APNS发送JSON通知,当我尝试发送它时,我收到400 Bad Request并显示错误消息:
The supplied notification payload is invalid.
这是我的通知JSON:
{"uri":"myApp://test","type":"test_push","badge":1,"content-available":1}
我按照以下方式创建通知:
notif = new AppleNotification(json);
我发送通知:
client.SendNotificationAsync(notif, "myTag")
之后,我收到错误。默认情况下,内容类型为application/xml
,收到错误后,我已开始将内容类型设置为application/json
,但没有任何更改。
我做错了什么?
更新:我的集线器和证书已正确安装;我可以通过Azure门户发送成功的测试通知。
答案 0 :(得分:3)
能,
您的有效负载格式不正确,请尝试以下操作:
spinner1 = (Spinner) findViewById(R.id.spinner1);
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this,
R.array.assaultRifles, android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner1.setAdapter(adapter);
spinner1.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener()
答案 1 :(得分:2)
在Azure门户上玩测试推送发送后,我自己发现了问题:如果JSON尚未包含在aps
对象中,则Notification Hub不接受JSON 。我已将JSON更改为:
{aps: {"uri":"myApp://test","type":"test_push","badge":1,"content-available":1} }
现在它正在运作。我认为这是自动包装,但显然它不是。
答案 2 :(得分:0)
您可以使用 \ 转义特殊字符。请参见下面的示例,我对使用 \ 转义的单词 Hub 使用了双引号。
{"aps":{"alert":"Notification \\\"Hub\\\" test notification"}}