使用Refit转换url参数

时间:2015-02-09 15:53:36

标签: c# xamarin refit

我正在使用Refit库来访问我的API。这工作得很好,但是在我的网址中使用枚举列表时遇到了一些问题。

[Get("/track/")]
Task<IList<Track>> GetAll(int size = 20, int from = 0, [AliasAs("content-types")] IEnumerable<TrackSubType> contentTypes = null, IEnumerable<string> tags = null, string language = null);

IEnumerable contentTypes目前转换为:

https://website.com/track/?content-type=System.Collections.Generic.List`1[Api.Implementation.Models.TrackSubType]

我希望以下列格式提供:

https://website.com/track/?content-type[]=sometype

我怎样才能实现这个目标?

2 个答案:

答案 0 :(得分:1)

我认为默认情况下Refit会在列表中使用ToString来创建查询参数值。您可以创建自己的继承自列表的类,并覆盖ToString方法以在等号的右侧实现您想要的内容。我不太确定为什么你不能使用aliasas属性添加方括号。

答案 1 :(得分:0)

我的问题目前无法通过改装而不做一些解决方法。在改装的GitHub中存在一个问题,其中涵盖了这个主题并且有人正在处理它:https://github.com/paulcbetts/refit/issues/4