如果是空字符串,我的Azure函数应该抛出一个异常。

问题描述 投票:0回答:1

编码 Run 我的 Azure Function 的方法是这样的。

public static void Run([HttpTrigger("get")] HttpRequest req, ILogger log) {
   string parameter = req.Query["parameter"];
   if (string.IsNullOrEmpty(parameter)) {
      throw new ArgumentNullException("Parameter must be set.");
   }
   log.LogInformation(parameter);
}

在运行Function并将参数传递给HTTP请求时,我有以下情况。

  • 没有参数的HTTP GET (/api/ServiceBusOutput): 异常(正确)
  • 未设置参数的HTTP GET (/api/ServiceBusOutput?parameter): 异常(正确)
  • HTTP GET,参数为空字符串 (/api/ServiceBusOutput?parameter=""): 成功,但它应该失败 (URL变成了 /api/ServiceBusOutput?parameter=%22%22)
  • HTTP GET,参数为字符串 (/api/ServiceBusOutput?parameter="something"):成功(正确)

如何做才能让第三个测试失败?

c# azure-functions httprequest http-get azure-function-app
1个回答
0
投票

的值 "" 是一个有效的查询字符串参数。字符串值不会通过URL用引号传递。

例如,如果你想接收单词 something 作为参数,它将被传递为 /api/ServiceBusOutput?parameter=something.

如果你想测试一个空的字符串值,以下任何一个都可以。

/api/ServiceBusOutput?parameter= /api/ServiceBusOutput

© www.soinside.com 2019 - 2024. All rights reserved.