我有一个小型逻辑应用程序,旨在从某处获取数据并将其存储在 blob 中。然后我想通过推送通知将 URL 发送到所有设备。我希望将 URL 作为原始通知发送,所以在应用程序/后台任务中,我可以做一些处理。
问题是当我使用逻辑应用程序创建 http POST 请求以发送通知时,我收到 400 错误。具有身份验证等的相同标头以及有效负载和 URL 在 POSTMAN 或 REST API 客户端上工作正常。以下是输入和输出。请帮忙。已经脑残了
这是输入。
{
"uri": "https://xxoppoc.servicebus.windows.net/xxopPOC/messages/?api-version=2015-01",
"method": "POST",
"headers": {
"Authorization": "SharedAccessSignature sr=sb%3a%2f%2fxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxt%2f&sig=qEnxxxxxxxxxxxx&skn=DefaultFullSharedAccessSignature",
"Content-Type": "application/octet-stream",
"ServiceBusNotification-Format": "windows",
"ServiceBusNotification-Tags": "MyTag",
"X-WNS-Type": "wns/raw"
},
"body": "Some Raw Information. Hello World"
}
这是输出:
{
"statusCode": 400,
"headers": {
"transfer-Encoding": "chunked",
"date": "Wed, 30 Mar 2016 14:10:41 GMT",
"server": "Microsoft-HTTPAPI/2.0"
},
"body": {
"$content-type": "application/xml; charset=utf-8",
"$content": "PEVycm9yPjxDb2RlPjQwMDwvQ29kZT48RGV0YWlsPlRoZSBjb250ZW50IHR5cGUgZm9yIGEgJ3ducy9yYXcnIG5vdGlmaWNhdGlvbiBtdXN0IGJlICdhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0nLlRyYWNraW5nSWQ6NTNmNjhlMGItNDc1MC00ZDRkLWJiNTAtMzJjNTBmOGIyNDk1X0czLFRpbWVTdGFtcDozLzMwLzIwMTYgMjoxMDo0MSBQTTwvRGV0YWlsPjwvRXJyb3I+"
}
}
让我再提一下,我得到了正确的身份验证,因为它适用于 chrome 和 POSTMAN 上的 Advanced REST Client。如果我发送带有 xml 作为其内容类型的 wns/toast 通知,上述逻辑应用程序也可以工作。然而,我需要它是一个 wns/raw 通知。请帮忙。谢谢
编辑/进展
感谢 MichaelB,我们发现内容类型正在被修改。我将请求发送到不同的 URL 以查看标头。观察到以下内容: Content-Type: application/octet-stream; 字符集=utf-8
如果我在 POSTMAN 上使用上述 Content-Type。它实际上也失败了。所以这可能是第一步。为什么 Azure Logic Apps 将 charset-utf-8 添加到我的内容类型的末尾。我能阻止它吗?