Alamofire获取wordpress页数

时间:2017-08-16 22:15:22

标签: ios wordpress alamofire wordpress-rest-api

我正在使用Alamofire通过获取请求获取我的所有wordpress帖子,我使用以下代码获取帖子的类别页数以帮助我使用分页:

func getNumOfPagesInCat (url: String, completion: @escaping (_ error: Error?, _ numOfPages: Int)-> Void) {

 Alamofire.request(url, method: .get, parameters: nil, encoding: URLEncoding.default, headers: nil).responseJSON { (response) in

        switch response.result {



        case .failure(let error):

            completion(error, 0)



        case .success(_):


            if let numOfPagesString = response.response?.allHeaderFields["X-WP-TotalPages"] as? String {

                print("the num of pages: \(numOfPagesString)")
                let numOfPages = Int(numOfPagesString) ?? 0

                completion(nil, numOfPages)

            }else {

                print("no value available") // this is what i get
                completion(nil, 0)

            }

        }



    }

}

url示例:http://mywebsite.com/wp-json/wp/v2/posts?categories=1

代码一直成功运行,直到我转向ssl安全服务器,我可以获得所有帖子,但我无法获得标题“X-WP-TotalPages”的价值

请帮忙

1 个答案:

答案 0 :(得分:0)

allHeaderFields方法的

Apple's Developer Documentation提到NSDictionary对象中返回的数据是' raw'数据,

  

包含作为服务器响应的一部分接收的所有HTTP标头字段的字典。通过检查此字典,客户端可以看到HTTP服务器返回的“原始”标头信息。

我不确定wordpress用于返回标头数据的格式,但您首先需要将其解析为本机NSObject,例如NSString或NSNumber,然后才能使用它。