【问题标题】:Simulator and iPhone make different web requests with the same code模拟器和 iPhone 使用相同的代码发出不同的 Web 请求
【发布时间】:2016-07-08 13:09:13
【问题描述】:

哇,这很奇怪。我查看了我的网络服务器日志,并且在模拟器上运行我的代码时,它会发出以下请求...

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($0) }
}

服务...

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 = []
        }
    }

【问题讨论】:

  • 你可能会错过输入 London
  • 为什么会导致不同的 URL?
  • 可以分享代码吗?
  • @IshmeetSingh 已更新。
  • 这可能与服务器有关。服务器也可能是分页结果。在发送请求之前尝试在控制台上打印您的网址。

标签: iphone swift ios-simulator alamofire


【解决方案1】:

应用的嵌入式框架在设备上运行时已过期。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-05-01
    • 2014-08-13
    • 1970-01-01
    • 2022-07-04
    • 1970-01-01
    • 2018-07-12
    • 1970-01-01
    • 2012-10-13
    相关资源
    最近更新 更多