如何从 100 个不同但相似的 URL 中获取 JSON 数据

How to get JSON data from 100 different but similar URL

所以我要请求的 API 的网站每个请求只能处理 50 个项目(我需要整个数据,顺便说一下,这是 5001)有没有办法制作 URL 带有特殊字符,可以从 101 个不同(但相似)URL? (差异在每个 URL 的后面,需要更改跳过号,仅此而已)(它说无法将 '(String: Int)' 的值编译为预期的参数类型 String

func fetchDataForNearbyStops(completionHandler : ([Nearby]?, String?) -> ()){

    let requestURLStr = "http://datamall2.mytransport.sg/ltaodataservice/BusStops?$skip="
    let requestURL = NSURL(string: requestURLStr)
        let reqNum : Int = 0
        let reqURLStr = requestURLStr + (String: reqNum)
    let request : NSMutableURLRequest = NSMutableURLRequest()
    request.URL = reqURL
    request.HTTPMethod = Cara
    request.addValue(AccKey, forHTTPHeaderField: AccKeyField)
    request.addValue(UniqueUID, forHTTPHeaderField: UniqueUIDField)
    request.addValue(CustomHeader, forHTTPHeaderField: CustomHeaderField)

    let task = NSURLSession.sharedSession().dataTaskWithRequest(request) { (data, response, error) in
            print(NSString(data: data!, encoding: NSUTF8StringEncoding))
        do {
        if let JSONDataArray = try NSJSONSerialization.JSONObjectWithData(data!, options: NSJSONReadingOptions.MutableContainers) as? [AnyObject] {
            print(JSONDataArray)
            }
        } catch {
        }
        }
        task.resume()
    NSOperationQueue.mainQueue().addOperationWithBlock { () -> Void in
        completionHandler(nil, nil)
    }
}

你的代码很接近,你基本上只是把括号放错了地方...

let requestURLStr = "datamall2.mytransport.sg/ltaodataservice/BusStops?$skip=";
let reqNum : Int = 0

let reqURLStr = requestURLStr + String(reqNum)

您需要使用该号码创建一个 String 实例。然后您应该使用 2 个函数,一个用于控制请求多少页,一个用于发送请求:

func sendRequests() {
    for page in 0...10 {
        sendPageRequest(page)
    }
}

func sendPageRequest(page: Int) {
    let requestURLStr = "datamall2.mytransport.sg/ltaodataservice/BusStops?$skip=";
    let reqURLStr = requestURLStr + String(page)

    ...