1
我使用Alamofire從flickr API獲取JSON數據。 此處若功能,準備URL的數組從響應:在API URLAlamofire AFError在使用Flickr API時
func urlTolinkslist (tag: String) {
print (viewSearchBar.text)
let url = "https://api.flickr.com/services/feeds/photos_public.gne?tags=\(tag.replacingOccurrences(of: " ", with: "%20"))&format=json&nojsoncallback=1"
Alamofire.request(url).validate().responseJSON { response in
switch response.result {
case .success(let value):
let json = JSON(value)
let items = json["items"]
self.linksList = []
for i in 0..<items.count {
let item = items[i]
let media = item["media"]
var link = String(describing: media["m"])
self.linksList.append(link)
}
print("count: \(self.linksList.count)")
self.viewCollectionView.reloadData()
case .failure(let error):
print(error)
}
}
}
「標籤」是我從一個搜索欄獲取參數。在大多數情況下,它工作正常,但在某些情況下,我得到:
[Result]: FAILURE: responseSerializationFailed(Alamofire.AFError.ResponseSerializationFailureReason.jsonSerializationFailed(Error Domain=NSCocoaErrorDomain Code=3840 "Invalid escape sequence around character 1029." UserInfo={NSDebugDescription=Invalid escape sequence around character 1029.}))
我想可能會有一些額外的字符,但我不知道如何解決它。
並沒有爲我工作了。仍然得到一些標籤的錯誤。 – Ana
Oups我錯過了一些東西。錯誤是說響應不是json。你可以嘗試使用.responseString並打印結果嗎? Btw保持使用上面相同的代碼,因爲你不應該自己編碼參數 – ELKA
謝謝你,我鏈接響應處理程序'.responseString'和'.responseJSON'。所以我在失敗的迴應中發現了** \ **,這在成功的組合中並不存在。我想,我需要得到responseString,清理響應,然後將其轉換爲JSON。將嘗試找到一種方式... – Ana