Комментарий svick верен. Установите тип содержимого в первом параметре AddParameter()
, и вы можете пропустить вызов AddHeader()
.
Хотя это и «правильный» ответ, я объясню, почему у него есть запутанный метод для этого, который не совсем очевиден.
Предполагаемый способ сделать это - использовать AddBody()
вместе с RestRequest.RequestFormat
. Пример:
var client = new RestClient();
// client.XmlSerializer = new XmlSerializer(); // default
// client.XmlSerializer = new SuperXmlSerializer(); // can override with any implementaiton of ISerializer
var request = new RestRequest();
request.RequestFormat = DataFormat.Xml;
request.AddBody(objectToSerialize);
Сериализация objectToSerialize
основана на зарегистрированном XmlSerializer
. Если вы используете RequestFormat = DataFormat.Json
, то используется RestClient.JsonSerializer
. Реализации ISerializer
(которые вы можете использовать для переопределения сериализации по умолчанию) объявляют свои собственные Content-Types, которые и проходят через перегрузку janky AddParameter()
, которую вы используете.
AddParameter(contentType, content, ParameterType.RequestBody)
никогда не предназначался для прямого вызова. Он был добавлен в качестве обходного пути для передачи данных из AddBody()
, но затем другие вещи стали зависеть от него, поэтому он застрял. Оглядываясь назад, это было ужасное решение, но уже слишком поздно менять его в линейке версий 1xx. Если я когда-нибудь соберу другую версию, я сделаю это более очевидным.