Я интегрируюсь с сторонним API через запрос PUT (обязательно). Однако URL-адрес не соответствует стандарту.HttpRequestMessage - параметр декодирования '- C# net40
Обратите внимание, что номер резервирования не находится в теле или не как параметр, его просто a/then number.
Они закодировали номер бронирования (запрошенный через другой вызов API). Проблема в том, что я использую HttpRequestMessage, это расшифровывает% 2F в /. Это значит, что это не удается. Я пробовал двойную кодировку специальных символов, но это не возвращает последовательный ответ, иногда он терпит неудачу в других случаях, когда он работает (с использованием разных номеров резервирования, только% 2F закодирован двойным образом). Есть ли способ остановить декодирование HttpRequestMessage части URL-адреса?
Я попытался кодирование/декодирования, но он всегда получает раздел здесь (если не двойные, кодируемый:
var path = "https://standard.com/services/U2FsdGVkX18qfVhkTn7JsiXWA8q4vco7vpU%2BmeKqiXKafdKxfJqsq1ELGFOHIilpoR7VXqUcg89yXiabxjjfVXiRmVqGOffsKw%2BKLp5OU6%2FJZaTyn6BYxi%2F10ndtWFLG2KgxRmm%2BxtgTAopUi6m7wWTnSoAlL8qoS%2F3UbiippOw%3D";
var requestMessage = new HttpRequestMessage(HttpMethod.PUT, path);
var requestMessage = (HttpWebRequest)WebRequest.Create(path);
var requestMessage = new HttpRequestMessage(method, new Uri(path));
Update: Это было дизайнерское решение, сделанное Microsoft:
Решение с их точки зрения заключается в добавлении параметра в файл web.config. Но это библиотека классов и поэтому используется более , чем один проект. Я не хочу изменять это, если мне действительно не нужно