0

どこかからデータを取得して blob に保存するための小さなロジック アプリがあります。次に、プッシュ通知を介してすべてのデバイスに URL を送信したいと思います。URL を生の通知として送信したいので、アプリ/バックグラウンド タスクで処理を行うことができます。

問題は、ロジック アプリを使用して http POST 要求を作成し、通知を送信すると、400 エラーが発生することです。ペイロードと URL を含む認証などの同じヘッダーは、POSTMAN または REST API CLIENT で正常に機能します。以下は入力と出力です。助けてください。もう脳死。

これが入力です。

{
"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

上記の Content-Type を POSTMAN で使用するとします。実際にも失敗します。したがって、これは1つのステップになる可能性があります。Azure Logic Apps がコンテンツ タイプの末尾に charset-utf-8 を追加するのはなぜですか? 止めてもいいですか?

4

0 に答える 0