swift - Alamofire 无效的 URL
问题描述
尝试获取信息时出错。服务器在 URL 中支持俄语。
错误:
[结果]: FAILURE: 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)
}
}
}
解决方案
编码您的URL
then create 请求。
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
}
}
推荐阅读
- mysql - 存储过程返回 ER_BAD_NULL_ERROR
- scala - 控制微批量结构化 Spark Streaming
- xamarin - 在 webview xamarin 表单中单击输入和显示键盘时页面不滚动
- excel - 如何创建仅在我选择的单元格上运行的宏?
- javascript - 递归函数无法读取对象属性
- spring-cloud - 如何检索多个 AWS 安全密钥?
- ios - 用苹果登录后怎么办?
- android - 应用内结算的唯一产品 ID。谷歌播放
- java - 用什么来替换 kotlin 和 java 中已弃用的 Date.hours 方法
- python - 轴上的 Numpy 乘法