Alamofire总是给我一个错误状态代码500作为回应

时间:2015-10-09 18:02:53

标签: ios swift xcode7 alamofire

我遇到以下问题,我尝试使用Alamofire访问我的应用程序中的一些Web服务,这是我正在使用的代码:

Alamofire.request(.GET, "https://httpbin.org/get")
        .validate()
        .responseJSON { response in
            switch response.result {
            case .Success:
                print("Validation Successful")
            case .Failure(let error):
                print(error)
            }
    }

结果是"验证成功"这是对的,但问题是,当我试图调用我自己的服务时,如果有人想要查看它,这是Web服务的URL: https://rapidweb3000.com/RapidSentry/MiOSService.svc/GetUserIdentity/rrms/rapid123 正如您所见,此Web服务正常运行,但是当我使用我的URL调用相同的代码时,我收到以下错误:

Error Domain=com.alamofire.error Code=-6003 "Response status code was unacceptable: 500" UserInfo={NSLocalizedFailureReason=Response status code was unacceptable: 500}

我已在Android应用程序中使用此Web服务,并且可以正常使用GET请求 请相信我对这个问题有任何帮助。 注意:我使用的是Xcode 7和swift。

4 个答案:

答案 0 :(得分:6)

我想提供有关此主题的反馈,它似乎是Xcode 7 Beta模拟器中的一个错误,因为我在物理设备上测试应用程序,它确实工作正常。此外,当您重置模拟器并重新启动时,它将再次工作。 这是我们在beta应用程序中遇到的问题。

答案 1 :(得分:3)

状态代码500表示服务器出现问题,而不是您的代码。

  

Status code in HTTP

答案 2 :(得分:3)

您可以将Alamofire / validation.swift文件中的acceptableStatusCodes范围从200 ..< 300更改为200 ..< 500

替换下面的行

let acceptableStatusCodes: Range<Int> = 200..<300

这一行

let acceptableStatusCodes: Range<Int> = 200..<500

答案 3 :(得分:0)

将可接受的状态代码范围传递给validate函数,如下所示:

.validate(statusCode: 200..<500)