2017-09-01 56 views
0

我创建了一个Azure C#HTTP触发函数,其路由url:subscriptions/{token}/t。它适用于诸如subscriptions/blah/t之类的网址,但对于包含编码斜线的参数而言,它会失败,并显示404。任何方式在这个?HTTP触发天青功能不会绑定具有编码斜线的路由参数

在我们讨论之前,{token}是一个URL编码的Base64字符串,它自然会包含斜杠。

回答

0

但是对于包含编码斜线的参数404:subscriptions/blah%2fblah/t,它失败。

这很有意义,因为'subscriptions/blah%2fblah/t'等于'subscriptions/blah/blah/t'。我建议你定义你自己的斜线编码规则。例如,您可以将所有斜杠转换为'[[ - ]]'。您的代币将如此'订阅/等等[[ - ]]等等。收到令牌后,您可以将特殊字符转换回来。

token = token.Replace("[[-]]", "/"); 
+0

同意,但除了确保它按照我的动作/函数(使用斜线...)之外,编码参数的目的是什么? –

+0

您的令牌中有多少个斜杠?这是一个固定大小?如果是的话,你可以修改你的路由URL以匹配它。否则,您需要使用自己的方式对令牌进行编码。 – Amor

+0

有没有更新?如果您还有其他问题,请随时通知我。 – Amor