模拟器和 iPhone 使用相同的代码发出不同的网络请求
Simulator and iPhone make different web requests with the same code
哇,这很奇怪。我查看了我的 Web 服务器日志,当 运行 我的代码在模拟器上时,它发出以下请求...
2016-07-08 13:00:10 172.31.52.24 GET /admin/api/cities/Lond
但是当我发布到我的设备时,它会这样做...
2016-07-08 13:04:03 172.31.52.24 GET /admin/api/cities pageindex=1&term=Londo
这怎么可能?
这是网络请求代码...
public func DoWebRequest(url: String, parameters: [String: AnyObject]? = nil) -> Promise<AnyObject> {
return Promise { fulfill, reject in
let request = Alamofire.request(.GET, webServiceUrl + url)
request.responseString { response in
guard response.result.error == nil else {
reject(response.result.error!)
return
}
fulfill(response.result.value!)
}
}
}
存储库...
public func fetchCities(term: String) -> Promise<[City]> {
return DoWebRequest("cities/\(term)") { self.BindCity([=12=]) }
}
服务...
public func getCities(term: String) -> Promise<[City]> {
return tourRepository.fetchCities(term)
}
客户...
func updateSearchResultsForSearchController(searchController: UISearchController) {
if searchController.active && searchController.searchBar.text?.characters.count >= 4 {
tourService.getCities(searchController.searchBar.text!)
.then { result -> Void in
self.cities = result
}
} else {
self.cities = []
}
}
在设备上 运行 时,应用的嵌入式框架已过时。
哇,这很奇怪。我查看了我的 Web 服务器日志,当 运行 我的代码在模拟器上时,它发出以下请求...
2016-07-08 13:00:10 172.31.52.24 GET /admin/api/cities/Lond
但是当我发布到我的设备时,它会这样做...
2016-07-08 13:04:03 172.31.52.24 GET /admin/api/cities pageindex=1&term=Londo
这怎么可能?
这是网络请求代码...
public func DoWebRequest(url: String, parameters: [String: AnyObject]? = nil) -> Promise<AnyObject> {
return Promise { fulfill, reject in
let request = Alamofire.request(.GET, webServiceUrl + url)
request.responseString { response in
guard response.result.error == nil else {
reject(response.result.error!)
return
}
fulfill(response.result.value!)
}
}
}
存储库...
public func fetchCities(term: String) -> Promise<[City]> {
return DoWebRequest("cities/\(term)") { self.BindCity([=12=]) }
}
服务...
public func getCities(term: String) -> Promise<[City]> {
return tourRepository.fetchCities(term)
}
客户...
func updateSearchResultsForSearchController(searchController: UISearchController) {
if searchController.active && searchController.searchBar.text?.characters.count >= 4 {
tourService.getCities(searchController.searchBar.text!)
.then { result -> Void in
self.cities = result
}
} else {
self.cities = []
}
}
在设备上 运行 时,应用的嵌入式框架已过时。