使用 visual studio 创建 webapi 项目,并添加 DefaultController.cs,代码如下
public class DefaultController : ApiController
{
[HttpGet]
[Route("HH")]
public DefaultResponse HH([FromUri]DefaultRequest request)
{
return new DefaultResponse
{
ss = "iioppperer",
ts = DateTime.Now
};
}
}
public class DefaultResponse
{
public string ss { get; set; }
public DateTime ts { get; set; }
}
public class DefaultRequest
{
public DefaultRequestChild child { get; set; }
}
public class DefaultRequestChild
{
public int childid { get; set; }
public string chidname { get; set; }
public ChildType childs { get; set; }
}
public enum ChildType
{
HH,
TT
}
使用 nuget 添加 swagger, 并编译运行,在当前根 url 访问 /swagger,页面如下 
如红线部分参数,如果我们每次手动拼结,少了还好,如果 10 个以上,很容易拼错,也容易拼的心累,那么有没有好的办法呢,自己写?死脑细胞!直接用 nuget 里搜索 query string,发现如下
github 地址:https://github.com/travelhubapi/csharp-qs 言归正传,使用 csharp-qs 生成 / HH 需要的参数
var request = new
{
child = new { childid = 1, chidname = "SS", childs = (int)ChildType.TT }
};
var rs = QS.Stringify(request,"request");
Console.WriteLine(rs);
输出结果 request.child.childid=1&request.child.chidname=SS&request.child.childs=1
好了,感谢作者的分享,我们用起来吧