2017-08-03 10 views
0

初めてこのAPIを呼び出すと正常に動作します。このコードを使用してAPIを呼び出すのは2回目ですが、何も起こらないようです。返されるデータはまったく同じで、バックエンドはクライアントからの着信API呼び出しを登録しません。Alamofireを使用したAPIコールは更新されません

キャッシュのようなものが起こっているように見えますが、どのようにキャッシュをオフにするかわかりません。 Alamofire 4.5を使用します。

これは私のコードです:

func getPopularBrocodes(_ offset: Int, completionHandler: @escaping (([AnyObject]?, Int?, AnyObject?) -> Void)) { 
    let urlString = Constant.apiUrl().appendingFormat(Constant.apiGetPopularBrocodes).appending("?offset=\(offset)") 

    Alamofire.request(urlString, method: .get, encoding: Alamofire.JSONEncoding.default, headers: self.header).validate().responseJSON(completionHandler: {response in 
     if response.result.isSuccess { 
      if let value = response.value { 
       var jsonString = "" 
       let json = JSON(value) 
       jsonString = json["data"].rawString()! 
       let nextInt = Int(json["next"].rawString()!) 
       if let brocodes:Array<BroCode> = Mapper<BroCode>().mapArray(JSONString: jsonString) { 
        completionHandler(brocodes, nextInt, nil) 
       } else { 
        completionHandler(nil, nextInt, nil) 
       } 
      } 
     } 
     if response.result.isFailure{ 

     } 
    }) 
} 

答えて

1

はい、ローカルキャッシュが問題です。複数のソリューションがあります。

How to disable caching in Alamofire

あなたはそれがすべてのキャッシュされた応答を除去することにより、ローカルキャッシュであることを確認できました。ちょうどこれを加えなさい: URLCache.shared.removeAllCachedResponses()

+0

あなたが投稿したリンクのAndrewの答えを使って私のために働いた。 Alamofireリクエストの拡張機能を作成しました。 –

関連する問題