Как я могу убедить Refit не добавлять преамбулу XML? - PullRequest
0 голосов
/ 27 марта 2019

Я новичок в использовании Refit . Я использую Refit сейчас для вызова REST Api, который ожидает XML в качестве ввода. Это работает, но кажется, что Refit автоматически добавляет хорошо известную преамбулу xml для описания кодировки.

Я хочу отправить элемент xml без преамбулы (как того требует целевая система). Как мне это сделать? Вот мой код в классе запуска:

    var settings = new RefitSettings
    {
        ContentSerializer = new XmlContentSerializer()
    };
    services.AddRefitClient<IItemApi>(settings)
        .ConfigureHttpClient(c => c.BaseAddress = new Uri("http://127.0.0.1:5000"));

Вот мой класс данных и только что использованный интерфейс

public class PayLoad
{
    public string A { get; set; }
    public string B { get; set; }
}

public interface IItemApi
{
    [Post("/target/{id}")]
    Task<ApiResponse<string>> PostItemAsync(string id, [Body] PayLoad item,
        CancellationToken cancellationToken = default);
}

Вот пример почтового звонка:

        var result = itemApi.PostItemAsync("X",new PayLoad
        {
            A = "A",
            B = "B"
        });

Это необработанный запрос:

POST http://127.0.0.1:5000/target/X HTTP/1.1
Content-Type: application/xml; charset=utf-8
Content-Length: 76
Host: 127.0.0.1:5000

<?xml version="1.0" encoding="utf-8"?><PayLoad><A>A</A><B>B</B></PayLoad>

Как я могу изменить свой код таким образом, эта часть

<?xml version="1.0" encoding="utf-8"?>

больше не в запросе?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...