我正在C#中运行一个API,并将其作为默认的webapi启动,因此它获得了.slide-6996 img {display:none;}
网址。
在我的控制器中,我正在使用/api/<controller>
方法来通过开关盒检索某些图表对象,但是在POSTMAN上进行测试时,两个参数都起作用,但是我只能得到第一个对象,而我不能似乎找出原因
这是我的控制器
GET
因此,请求以public class GraphController : ApiController
{
public Graph Get(string param)
{
//string[] arrayListGraphic = param.Split('|');
switch (param)
{
// case "GF001": return new GraphDAO().graph01();
case "GF002": return new GraphDAO().graph02();
case "GF003": return new GraphDAO().graph03();
// case "GF004": return new GraphDAO().graph04();
// case "GF005": return new GraphDAO().graph04();
// case "GF006": return new GraphDAO().graph01();
}
return null;
}
}
的形式出现,但是当我希望获取所有参数数据时,我的响应只会得到我的第一个参数数据!
我想念什么?谢谢
答案 0 :(得分:0)
这是我的建议:
public class GraphController : ApiController
{
public IEnumerable<Graph> Get(string[] params)
{
List<Graph> graphsList = new List<Graph>();
foreach(var param in params) {
//string[] arrayListGraphic = param.Split('|');
switch (param)
{
// case "GF001": return new GraphDAO().graph01();
case "GF002": graphsList.Add(new GraphDAO().graph02()); break;
case "GF003": graphsList.Add(new GraphDAO().graph03()); break;
// case "GF004": return new GraphDAO().graph04();
// case "GF005": return new GraphDAO().graph04();
// case "GF006": return new GraphDAO().graph01();
}
}
return graphsList;
}
}
使用如下网址调用您的API: http://localhost:xxxx/api/graph/?params=GF002¶ms=GF003
答案 1 :(得分:0)
如果要向控制器传递多个字符串,则将需要接受字符串数组,而不是像现在这样的单个字符串。实际上,您的网址应该为localhost:xxxx/api/graph/?param=GF002
。
如果要同时接收两个字符串,则需要在控制器操作中接受一个字符串数组,例如
public Graph Get(string[] params)
{
//implementation
}
,您的网址应该看起来像您所拥有的一样。