Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios JSON和Alamofire请求存在问题_Ios_Swift_Swift3_Alamofire - Fatal编程技术网

Ios JSON和Alamofire请求存在问题

Ios JSON和Alamofire请求存在问题,ios,swift,swift3,alamofire,Ios,Swift,Swift3,Alamofire,我正在尝试发送带有下一个代码的请求: func getLogin(user: String, password: String) { let url = URL(string: "https://www.url.es/api/login")! let parameters: Parameters = [ "usuario" : "\(user)", "clave" : "\(password)"] let headers: HTTPHe

我正在尝试发送带有下一个代码的请求:

func getLogin(user: String, password: String) {
    let url = URL(string: "https://www.url.es/api/login")!

    let parameters: Parameters = [
        "usuario" : "\(user)",
        "clave" : "\(password)"]

    let headers: HTTPHeaders = [
        "Authorization": "Basic TOKEN"
    ]

    Alamofire.request(url, method: .post, parameters: parameters, encoding: JSONEncoding.default, headers: headers).validate()
        .responseJSON { response in
            print("repuesta")
            print(response.request as Any)  // original URL request
            print(response.response as Any) // URL response
            print(response.result.value as Any)   // result of response serialization

            debugPrint(response)
    }

}
但我得到的回应是:

[请求]:https://www.url.es/api/login
[答复]:{URL:https://www.url.es/api/login }{状态代码:401,标题{
“缓存控制”=“无缓存”;
“内容长度”=28;
“内容类型”=“文本/普通;字符集=utf-8”;
日期=“2017年1月16日星期一20:44:14 GMT”;
Expires=“-1”;
Pragma=“无缓存”;
Server=“Microsoft IIS/8.5”;
“Www-Authenticate”=承载;
“X-AspNet-Version”=“4.0.30319”;
“X-Powered-By”=“ASP.NET”;
} }
[数据]:28字节
[结果]:失败:responseValidationFailed(Alamofire.AFError.ResponseValidationFailureReason.unacceptableStatusCode(401))
[时间线]:时间线:{“请求开始时间”:506292395.911,“初始响应时间”:506292396.351,“请求完成时间”:506292396.352,“序列化完成时间”:506292396.353,“延迟”:0.440秒,“请求持续时间”:0.441秒,“序列化持续时间”:0.000秒,“总持续时间”:0.441秒}
我正在使用paw http客户端发送请求,并且响应正常


我正在使用swift3、alamofire 4和iOS10。根据您的回复,您的用户名和密码似乎不正确。尝试打印参数字典以确保其正确。有时可能发生的情况是,如果您忘记打开可选值,它仍然会被发送。比如说

let optionalString:String? = "blablabla"

print(optionalString) //prints: Optional(blablabla)
编辑:
我注意到的另一件事是您将编码设置为JSON,但标题内容类型为纯文本。尝试将encoding设置为URLEncoding.default,并确保标头的设置符合服务器的预期。

如果将参数定义替换为:let parameters:parameters=[“usuario”:“aaa”,“clave”:“bbb”]响应是相同的。我在请求中包含的参数是有效的登录参数。问题在于headers参数。如果没有此参数,请求调用将运行。