Мне нужно получить информацию из 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 г», это не так.