[我在一个iOS应用程序上工作,我使用“ Alamofire”进行API请求,我测试了邮递员的API(由Slim框架创建),但是我无法得到Alamofire的等效邮递员请求。
并且我尝试如下Alamofire:
let parm = ["Password_Father": "test", "Username_Father": "test"]
let headers : HTTPHeaders = ["content-type": "application/json"]
AF.request(URL(string: "http://my.domain.com/page1/login")!,
method: .get, // also try it as post but get error 500 as postman when using post method
parameters:parm,
encoding: JSONEncoding.default,
headers: headers)
.validate(statusCode: 200..<300)
.responseJSON { response in
switch response.result
{
case .success(_) :do {
print("success")
}
case .failure(let error):
print("failure(error)",error)
break
}
}
但我收到此错误failure(error) urlRequestValidationFailed(reason: Alamofire.AFError.URLRequestValidationFailureReason.bodyDataInGETRequest)
如何获得Alamofire对邮递员的同等要求。
在Google之后找到this。
添加域例外很容易。您添加NSExceptionDomains目标的NSAppTransportSecurity词典的键
Info.plist
。键的值是一个字典,其中每个键为字典是领域例外。看一下以下内容澄清示例。
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<false/>
<key>NSExceptionDomains</key>
<dict>
<key>cocoacasts.com</key>
<dict>
<key>NSIncludesSubdomains</key>
<true/>
<key>NSExceptionAllowsInsecureHTTPLoads</key>
<true/>
</dict>
</dict>
</dict>
在上面的示例中,它添加了一个子域cocoacasts.com
,并将NSExceptionAllowsInsecureHTTPLoads
设置为允许对该子域进行http
请求。 post一开始就说过。
Apple最近宣布,每个版本都已提交到App Store从1月1日开始需要启用App Transport Security2017。
这意味着默认情况下,所有通信都运行https
。如果应用程序需要http
,则需要为那些例外子域配置Info.plist
。