Alamofire неверный URL - PullRequest
       1

Alamofire неверный URL

0 голосов
/ 13 февраля 2019

Ошибка при попытке получить информацию.Сервер поддерживает русский язык в URL.

Ошибка:

[Результат]: СБОЙ: invalidURL (url: "http://ws.audioscrobbler.com/2.0/?method=artist.search&artist=сплин&api_key=bad5acca27008a09709ccb2c0258003b&format=json")

Запрос:

Alamofire.request("http://ws.audioscrobbler.com/2.0/?    method=artist.search&artist=\(nameOfArtist)&api_key=bad5acca27008a09709ccb2c0258003b&format=json")
            .responseObject { (response: DataResponse<SearchArtistAPIModel>) in
                //to get status code
                debugPrint(response)
                if let status = response.response?.statusCode {

                    switch(status){

                    case 200...499:
                        print("example success")
                    default:
                        print("error with response status: \(status)")
                    }
                }

                if let artistName = response.result.value {

                    guard let artistsArray = artistName.results?.artistmatches?.artist else { return }
                    var names: [String] = []
                    for artists in artistsArray {
                        guard let artistsName = artists.name else { return }
                        names.append(artistsName)
                        completion(names)
                    }
                }
        }

1 Ответ

0 голосов
/ 13 февраля 2019

Кодируйте URL, затем создайте запрос.

let urlString = "http://ws.audioscrobbler.com/2.0/?method=artist.search&artist=\(nameOfArtist)&api_key=bad5acca27008a09709ccb2c0258003b&format=json"        
if let encoded = urlString.addingPercentEncoding(withAllowedCharacters: .urlFragmentAllowed),let url = URL(string: encoded)
 {
     Alamofire.request(url).validate().responseJSON { (json) in
         print(json)
         //Enter your code here
     }
}
...