2017-05-09 78 views
0
Alamofire.request(NEWS_FEED_URL).responseJSON { response in 
     guard let newsResponse = response.result.value as? [[String:String]] else{ 
      print("Error") 
      return 
     } 
     print("JSON: \(newsResponse)") 

这是我的alamofire代码来获得服务器的响应。大多数时候它工作正常,但有时会失败并打印错误。即使我在故障块中粘贴打印(“JSON:”,newsResponse),它也会显示响应,但它不会进入成功块。我也打印一次状态码。它给我200.我的互联网运行良好,相关的网址在邮差中给予回复。但有时它不工作为什么?Swift 3 Alamofire有时会失败

+1

当失败那么你的反应不是'[[字符串:字符串]]'这里添加的响应,当它失败 –

+0

这肯定是在说NiravD。它失败了,因为演员不工作。在这种情况下打印回复,看看应该做什么。 – Larme

+0

响应如下:[{key:value},{key:value},{key:value}] – Sptibo

回答

0

尝试此方法

func apiRequest(method:String, urlMethod:String, parametersDictionary:NSMutableDictionary, success:@escaping successDictionaryBlock, failure: @escaping failBlockErrorMessage){ 
      let requestUrl = "Request URL" 


      Alamofire.request(requestUrl, method: .post, parameters: (parametersDictionary as NSDictionary) as? Parameters , encoding: JSONEncoding.default, headers: nil).responseJSON { response in 
       print(response) 
       print(requestUrl) 

       if(response.result.error == nil){ 

        if((response.response?.statusCode)! < 500){ 

         if(response.response?.statusCode == 200){ 

          if let JSON = response.result.value { 

           print(JSON) 
           let dict = JSON as! NSDictionary 
           let status :Bool = dict["status"] as! Bool 

           if(status){ 
            success(dict) 
           }else{ 
            failure(dict["message"] as! String) 
           } 
          } 
         }else{ 
          failure("Something went wrong please try again") 
         } 
        }else{ 
         failure("Something went wrong please try again") 
        } 
       } 
      } 
     }