Быстрый разбор JSON URL с номером в URL - PullRequest
0 голосов
/ 09 сентября 2018

Мне нужно получить информацию из API, но в запросе это выглядит примерно так: http://website.name&q=chocolate

Моя проблема заключается в том, что я говорю, что я ищу определенный размер, и мне нужно добавить% 20 для пробелов.например, при поиске шоколада в 250 г: http://website.name&q=chocolate%20250g. Swift не распознает 250 г, выдает ошибку: неверная строка URL.Как создать URL-адрес json с номерами в запросе?

Редактировать:

 let jsonUrlString = self.getJsonUrl(pCode: postalCode, key: searchKey)

 guard let url = URL(string: jsonUrlString) else {return}

И я использую этот URL для URLSession.

Я использую этот код для форматирования интервала в моем запросе:

 private func formatSearchKey(key: String)->String{
    return key.replacingOccurrences(of: " ", with: "%20")
}

Например, когда я удаляю числа из запроса, файлы cookie% 20 и% 20milk хорошо.Когда я делаю что-то вроде куки 250 г: куки% 20250 г, это выдает мне ошибку

Редактировать 2.0

  private func getJsonUrl(pCode: String, key: String) -> String{
    //Create a function that creates a url based on postal code, and key values that it gets back from my database
    return "\(JSON_URL_BASE)postal_code=\(pCode)&q=\(key)"
}

private func formatPostalCode(pCode: String) -> String{
    return pCode.replacingOccurrences(of: " ", with: "")
}

private func formatSearchKey(key: String)->String{
    return key.replacingOccurrences(of: " ", with: "%20")
}

Ключевое значение - это то, с чем у меня проблемы.Иногда они возвращают строку типа «печенье и молоко», которая работает.Но когда он возвращает «печенье 250 г», это не так.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...