2015-10-20 5 views
1

У меня есть строка: <api address>/<parameters>?fmt=json
Когда я создаю объект NSURL из строки, URL является: <api address>/<parameters>%3Ffmt=jsonКак декодировать специальные символы в NSURL в Swift?

Когда я отправить запрос с этим URL (используя NSURLSession), однако, он получает доступ запрещен, поскольку API хочет ? и не принимает %3F. Как мне декодировать URL-адрес, чтобы вернуть ?, чтобы API принял запрос?

UPDATE

NSURL строительство

let urlRequestString = "<api url>?fmt=json&api_key=" + <key> let apiRequestURL = NSURL(fileURLWithPath: urlRequestString)

+0

Пожалуйста, покажите, как вы делаете 'NSURL' объект –

+0

@ZoffDino пусть urlRequestString = " FMT = JSON & api_key =?" + пусть apiRequestURL = NSURL (fileURLWithPath: urlRequestString) –

+0

Вы пытаетесь загрузить файл, или общаться с веб-сервером? –

ответ

0

Вы используете неправильный инициализатор, который вызывает фиктивные результаты. NSURL(fileURLWithPath: urlRequestString) предназначен для создания URL-адресов file://. Он преобразует ваш URL в формат, подходящий для файловой системы. Он предназначен только для использования в файлах, поэтому вы не должны использовать его здесь.

Если вы измените инициализатор на NSURL(string: urlRequestString), тогда ваш URL должен быть в порядке.

+0

Спасибо за помощь! –