场景:有个项目需要用到refit请求第三方接口,这个接口的请求参数是需要大写的,如果用了refit自带的AliasAs参数或者用JsonProperty("A")都无法序列化参数字段大写“A”,都会被首字母驼峰策略序列化成小写“a”
[AliasAs("A")]
public string Name { get; set; }
var otherApi = RestService.For<IOtherApi>("https://api.example.com",
new RefitSettings {
ContentSerializer = new NewtonsoftJsonContentSerializer(
new JsonSerializerSettings {
ContractResolver = new CamelCasePropertyNamesContractResolver()
}
)});
后面查google都找不到解决方法,后面看了这个问题有了些思路
https://github.com/reactiveui/refit/issues/1122
把CamelCasePropertyNamesContractResolver 改成CamelCaseNamingStrategy,参考两种区别: