Кто-нибудь может мне помочь?
let url = "\(urlAIString)/Url-Space/position=[\(userLocation)]"
AF.request(url,method: .get){
....
}
Я хочу, чтобы скобки доставлялись на сервер без кодирования. Однако я испытываю неудобства, поскольку скобки закодированы в base64 и доставляются
Я хочу, чтобы скобки доставлялись на сервер без кодирования.
Это не URL-адрес, поэтому используемый вами протокол не является HTTP. Возвращаясь к RFC 1738, спецификация ясна:
Таким образом, только буквенно-цифровые символы, специальные символы "$-_.+!*'()," и могут использоваться зарезервированные символы, используемые в своих зарезервированных целях. незакодированный в URL-адресе.
Хотя вы (и служба, с которой вы работаете) можете определить некоторый протокол, отличный от HTTP, который очень похож на HTTP, но также поддерживает GET-подобные запросы, которые не являются URL-адресами, это не протокол, который поддерживает URLSession (на который опирается Almofire). . Вам предстоит создать собственный сетевой транспорт для взаимодействия с этим сервисом. Как правило, вам придется построить это поверх чего-то вроде структуры Network. Обычно это непростая работа, поэтому обычно проще заставить вашу службу использовать стандартный протокол, такой как HTTP, и правильно закодированные URL-адреса, а не изобретать собственный протокол, подобный тому, который вы описываете.
Если вы создаете собственный протокол для связи с этим сервисом, посмотрите NWProtocolTLS . Если ваш сервис очень похож на HTTP/1.0 и вы не используете никаких дополнительных функций, не так уж сложно построить его с нуля поверх TLS-соединения . (TLS требует много работы, поэтому позвольте системе сделать это за вас.) Простой HTTP можно написать и проанализировать вручную.
Для интеграции этого в Alamofire потребуется URLProtocol, чтобы взять на себя транспортный уровень. Это не тонна кода, но его довольно сложно настроить. Если вы создаете для этого сетевую службу и у вас возникли проблемы с URLProtocol, задайте более конкретный вопрос по этому поводу, когда доберетесь туда.
Вместо этого я рекомендую исправить ваш сервер. Обычно это проще.