Error Domain=com.alamofire.error.serialization.response Code=-1011 "Request failed: unauthorized (40

来源:互联网 发布:魔盒淘宝客 编辑:程序博客网 时间:2024/05/21 03:56

介绍下前提,我们的APP分内外网登陆,内外网登陆时登录的URL是不同的

请求一个外网的发送短信的http请求,外网登录时可以发送成功但是内网登陆时失败,报错如下:

Error Domain=com.alamofire.error.serialization.response Code=-1011 "Request failed: unauthorized (401)" UserInfo={NSUnderlyingError=0x170251b80 {Error Domain=com.alamofire.error.serialization.response Code=-1016 "Request failed: unacceptable content-type: text/plain" UserInfo={com.alamofire.serialization.response.error.response=<NSHTTPURLResponse: 0x170229080> { URL: http://160.235.19.19:8080/v0.1/user/sms } { status code: 401, headers {

    "Content-Length" = 12;

    "Www-Authenticate" = "Basic realm=\"vertx-web\"";

} }, NSErrorFailingURLKey=http://160.235.19.19:8080/v0.1/user/sms, com.alamofire.serialization.response.error.data=<556e6175 74686f72 697a6564>, NSLocalizedDescription=Request failed: unacceptable content-type: text/plain}}, com.alamofire.serialization.response.error.response=<NSHTTPURLResponse: 0x170229080> { URL: http://160.235.19.19:8080/v0.1/user/sms } { status code: 401, headers {

    "Content-Length" = 12;

    "Www-Authenticate" = "Basic realm=\"vertx-web\"";

} }, NSErrorFailingURLKey=http://160.235.19.19:8080/v0.1/user/sms, com.alamofire.serialization.response.error.data=<556e6175 74686f72 697a6564>, NSLocalizedDescription=Request failed: unauthorized (401)}



报错信息中大家看到了1016和401两个数字,401表示请求要求身份验证。对于登录后请求的网页,服务器可能返回此响应。1016请看返回的报错信息:{Error Domain=com.alamofire.error.serialization.response Code=-1016 "Request failed: unacceptable content-type: text/plain",他表示响应的格式没有@“text/plain",



解决方法如下:

1.http请求时提交请求的身份验证,可能是cookies,也可能是用户名密码,还有其它的。

2.请求时加上如下的content-type,记住报错的content-type一定要写入下面。

    manager.responseSerializer.acceptableContentTypes = [NSSetsetWithObjects:@"application/json",@"text/json",@"text/javascript",@"text/html",@"text/plain",nil];

0 0