Я довольно новичок в Swift
программировании и разработке приложений для ios.Я создаю что-то, что будет собирать сообщения и другую информацию с веб-сайта Wordpress, используя Wordpress API
.Я использую https://mywebsite.com/wp-json/wp/v2/posts
в качестве конечной точки для получения нужных мне данных.Я работаю с Alamofire
и SwiftyJSON
, чтобы получить данные и проанализировать, прежде чем отобразить информацию в UICollectionView
.
Я использую параметры для запроса API, чтобы получить необходимые данные.По сути, фильтрация сообщений в это время.Проблема в том, что я всегда получаю номер по умолчанию (первые десять сообщений) в ответе.Похоже, что запрос работает нормально, поскольку веб-сайт смог получить точный запрос и отвечает, как и ожидалось.Но по какой-то причине я не могу увидеть эти данные в ответе, полученном внутри XCode.По умолчанию это первые 10 сообщений, как если бы не было применено никаких фильтров или запросов.Я понятия не имею, что происходит.Я пытался отладить это в течение нескольких дней без какой-либо удачи.Итак, я публикую здесь, чтобы посмотреть, есть ли у кого-нибудь мысли по разрешению этой тайны.
Ниже приведена функция, которую я написал для того же.
func getPosts() {
Alamofire.request(baseURL, parameters: parameters).responseJSON { (response) -> Void in
if((response.result.value) != nil) {
let postsJson = JSON(response.result.value!)
self.posts = [SitePosts]()
//Testing
print(response.request as Any)
print(response.response?.allHeaderFields)
print("Total posts: \(postsJson.arrayValue.count)")
do {
for posts in postsJson.arrayValue {
let post = SitePosts()
let title = posts["title"]["rendered"].stringValue
let content = posts["content"]["rendered"].stringValue
let url = posts["link"].stringValue
let urlToImage = posts["featured_image_link"].string
post.content = content
post.title = title
post.url = url
post.imageUrl = urlToImage
self.posts?.append(post)
}
DispatchQueue.main.async {
self.postsCollectionView.reloadData()
}
}
}
}
}
Ниже приведен запрос ответа, которыйбыло отправлено в API
[AnyHashable ("wpe-backend"): apache, AnyHashable ("Сервер"): nginx, AnyHashable ("x-type"): по умолчанию, AnyHashable ("x-cacheable "): bot, AnyHashable (" allow "): GET, AnyHashable (" x-cache "): HIT: 2, AnyHashable (" Cache-Control "): max-age = 10800, must-revalidate, AnyHashable («Content-Encoding»): gzip, AnyHashable («x-cache-group»): bot, AnyHashable («x-pass-why»):, AnyHashable («access-control-expose-headers»): X-WP-Total, X-WP-TotalPages, AnyHashable ("x-wp-totalpages"): 8, AnyHashable ("Content-Type"): application / json;charset = UTF-8, AnyHashable («x-content-type-options»): nosniff, AnyHashable («Expires»): четверг, 19 ноября 1981 г. 08:52:00 GMT, AnyHashable («access-control-allow-headers»"): Авторизация, Content-Type, AnyHashable (" x-wp-total "): 77, AnyHashable (" Date "): пт, 22 фев. 2019 22:46:42 GMT, AnyHashable (" Link "): https://mywebsite.com/wp-json/wp/v2/posts?page=2; rel = "next", AnyHashable ("x-robots-tag"): noindex]
Я использую Xcode 10.1
, Swift 4.2
, Alamofire (4.8.1)
, SwiftyJSON (4.2.0)
и Wordpress V2 API
.
Я добавил точку останова сразу после запроса Alamofire.Прикрепление скриншота того, что я вижу. Скриншот точки останова