2017-01-31 6 views
0

Я разрабатываю приложение, используя Swift. В моем приложении я получаю значение от UITextField и UITextView и отправляя это значение в качестве параметра в JSON API. Я могу отправить значение, но когда я отправлю значение с пробелом, мое приложение аварийно завершает работу и показывает ошибку как нулевое значение. Но мне нужно также отправить значение с пространством. Например, получить полное имя или адрес.Как справиться с пространственным значением в текстовом виде и текстовом поле, используя swift

Код:

Alamofire.request(.GET, "https://www.something.com/cid="+MyCustId+"", parameters: nil, encoding: .URL, headers: nil).response { (req, res, data, error) -> Void in 
       let dataString = NSString(data: data!, encoding:NSUTF8StringEncoding) 
       print(dataString) 

} 

Здесь MyCustId переменная, которая получает значение из UITextField. Заранее спасибо!

+0

characterSet.urlAllowed –

+0

Для URL, пространство представляет собой особый характер и должно быть закодированы проценты. – Moritz

ответ

0

Вы должны заменить spaces на %20 в URL следующим способом.

func addPercentageToUrl(urlString : String) -> String{ 

      return urlString.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed)! 
     } 


func makeService(){ 
let url = addPercentageToUrl(urlString : "https://www.something.com/cid="+MyCustId+"") 
Alamofire.request(.GET, url, parameters: nil, encoding: .URL, headers: nil).response { (req, res, data, error) -> Void in 
       let dataString = NSString(data: data!, encoding:NSUTF8StringEncoding) 
       print(dataString) 

} 
} 

Пожалуйста, обновите ваш код так.

+0

Не могли бы вы уточнить, пожалуйста, – user7333282

+0

Это означает, что при добавлении пробелов в вашем URL-адресе «https://www.something.com/cid="+MyCustId+» «это неверно. Когда вы пытаетесь добавить пространство в Url, тогда веб-браузер автоматически добавляет% 20 вместо пробелов, тогда как программно вам нужно добавить% 20 ​​в местах пробелов в URL-адресе, чтобы он успешно ударил сервер. –

+0

, используя эту функцию, как отправить это значение в качестве параметра – user7333282

0

, пожалуйста, используйте метод stringByAddingPercentEncodingWithAllowedCharacters для добавления пространства в URL

let myStr = strOfUrl.stringByAddingPercentEncodingWithAllowedCharacters(NSCharacterSet.URLQueryAllowedCharacterSet() 

 Смежные вопросы

  • Нет связанных вопросов^_^