Я недавно внедрил RestSharp вместо использования старого старого HTTP-клиента в .NET Core.Это было слишком полезно для некоторых проблем с аутентификацией OAuth1, и это прекрасно работало.
Однако одно требование, которое мне нужно поддерживать, теперь нарушено - вызов старой версии NAV, в которой все еще используются конверт SOAP и XML.
Мой запрос RestSharp построен следующим образом (частичноотредактировано):
var request = new RestRequest(transmission.Url.PathAndQuery, Helper.GetRestSharpMethod(transmission.Method), dataType);
request.AddParameter("text/xml", body, "text/xml", ParameterType.RequestBody);
Где dataType - Datatype.Xml, а body - мой мыльный конверт в виде текста XML.Я пробовал "application / xml".Я также пытался использовать request.AddBody и request.AddBodyXml - но они просто вызвали больше проблем.
Конечная точка (которая, как мы знаем, работает со старым запросом) возвращает проблему, поскольку не может прочитать данные изнутри.конверт SOAP (который, опять же, мы знаем, есть, потому что он есть в параметрах запроса).
Кто-нибудь может предложить какие-либо способы решения этой проблемы и при этом использовать остроту?Или это на самом деле не предназначено для поддержки, и я бы лучше использовать простой HTTP-клиент для этой конкретной части?
Спасибо.
РЕДАКТИРОВАТЬ:
Относительностарый код, текст конверта SOAP идентичен.Разница в том, что вместо использования RestSharp request.AddBody () я построил стандартный HttpRequestMessage, а затем установил HttpContent как new StringContent(content)
Это было отправлено с использованием стандартного .NET Core httpclient
var response = await client.SendAsync(request);