Общий формат URL следующий:
scheme:[//[userinfo@]host[:port]]path[?query][#fragment]
Вам нужно понять, что ?
не является частью path
.Это разделитель между path
и query
.
Если вы попытаетесь добавить ?
к пути, он должен быть закодирован в URL, поскольку ?
не является допустимым символом для компонента пути.
Лучшим решением было бы сбросить ?
с path
.Там нет никакого смысла.Однако если у вас есть частичный URL-адрес, который вы хотите добавить к базовому URL-адресу, вы должны объединить их в виде строк:
let url = URL(string: "https://example.com")
let path = "/somePath?"
let urlWithPath = url.flatMap { URL(string: $0.absoluteString + path) }
Короче говоря, appendingPathComponent
не является функцией, которую следует использовать длядобавить запрос URL.