Web API获取方法参数中的多个NULL值

Stu*_*art 4 .net c# api get

我在下面有这样的示例代码,使用get方法调用API:

CrudService.getAll("sampleurl/param1/param2/param3");
Run Code Online (Sandbox Code Playgroud)

从该示例中,param1和param2可以是null /空值.发生的事情是,当涉及API控制器时,param3的值转到param1.

即使可能有多个空/空值,如何保持参数的正确值?TIA.

Jin*_*kur 6

CrudService.getAll("sampleurl/param1/param2/param3");
Run Code Online (Sandbox Code Playgroud)

您必须为param1传递一个虚拟值,所以如果param1为空,请将其保留为"param1".基于空参数的各种可能的呼叫:

  • ("sampleurl/param1/param2/2");

  • ("sampleurl/param1/3/2");

  • ("sampleurl/param1/param2/param3");

因此,当调用转到API时,检查是否存在param1 = param1忽略您必须保留3个值的值,以便在任何情况下匹配API的签名.


小智 5

如果您使用 asp API,参数应该像这样发送。

  string url = $"https://example.com/api/controllerName/Action?parms1={value}&parms2={value}";
                                    response = client.GetAsync(url).Result;
Run Code Online (Sandbox Code Playgroud)

如果你使用 asmx,你应该编辑 web 服务来处理这样的参数:

CrudService.getAll("sampleurl",parm1,parm2,etc..);
Run Code Online (Sandbox Code Playgroud)

我希望这能帮到您。