feat: fix form url encoded strings #1593 (#1752)

This commit is contained in:
Tim M 2024-07-01 19:47:04 +01:00 коммит произвёл GitHub
Родитель 5f82841356
Коммит a8fcd12766
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: B5690EEEBB952194
2 изменённых файлов: 25 добавлений и 1 удалений

Просмотреть файл

@ -3241,6 +3241,29 @@ namespace Refit.Tests
Assert.Equal("Foo=Something&Bar=100&Baz=", output.SendContent); Assert.Equal("Foo=Something&Bar=100&Baz=", output.SendContent);
} }
[Fact]
public void BodyContentGetsUrlEncodedWithCollectionFormat()
{
var settings = new RefitSettings() { CollectionFormat = CollectionFormat.Csv };
var fixture = new RequestBuilderImplementation<IDummyHttpApi>(settings);
var factory = fixture.RunRequest("PostSomeUrlEncodedStuff");
var output = factory(
new object[]
{
6,
new
{
Foo = "Something",
Bar = 100,
FooBar = new [] {5,7},
Baz = "" // explicitly use blank to preserve value that would be stripped if null
}
}
);
Assert.Equal("Foo=Something&Bar=100&FooBar=5%2C7&Baz=", output.SendContent);
}
[Fact] [Fact]
public void FormFieldGetsAliased() public void FormFieldGetsAliased()
{ {

Просмотреть файл

@ -65,7 +65,8 @@ namespace Refit
// see if there's a query attribute // see if there's a query attribute
var attrib = property.GetCustomAttribute<QueryAttribute>(true); var attrib = property.GetCustomAttribute<QueryAttribute>(true);
if (value is not IEnumerable enumerable) // add strings/non enumerable properties
if (value is not IEnumerable enumerable || value is string)
{ {
Add( Add(
fieldName, fieldName,