错误域=NSURLError域代码=-1017 "cannot parse response"



在这里,我在发布json时遇到错误。

Error Domain=NSURLErrorDomain Code=-1017 "无法解析响应" UserInfo=0x7f89dac01a40 {NSUnderlyingError=0x7f89e0277a20 "无法解析响应", NSErrorFailingURLStringKey=http://test-onboard.qlc.in/FieldSense/authenticate, NSErrorFailingURLKey=http://test-onboard.qlc.in/FieldSense/authenticate, _kCFStreamErrorDomainKey=4, _kCFStreamErrorCodeKey=-1, NSLocalizedDescription=无法解析响应}

这是我的代码:

NSDictionary *dictionaryData=[[NSDictionary alloc]initWithObjectsAndKeys:self.txtUsername.text, @"userEmailAddress", self.txtPassword.text, @"password",nil];            
NSData* jsonData = [NSJSONSerialization dataWithJSONObject:dictionaryData options:kNilOptions error:&error];
[request setURL:url];
[request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
[request setHTTPBody:jsonData];

我也收到此错误,但我通过添加一行来克服这一点

request.HTTPMethod = "POST"

对于 Objective-C 编程,请使用以下内容:

[request setHTTPMethod:@"POST"];

我在 Alamofire 上遇到了同样的问题,错误导致了这个:

let encoding = Alamofire.ParameterEncoding.JSON let (encodedRequest, _) = encoding.encode(URLRequest, parameters: params)

我的变量参数是字典 [:]。我更改为参数:nil,这是工作。

对于任何其他得到error code -1017的人 - 我通过在 http 请求中手动设置我的 http 标头来修复它。我认为服务器在解析 HTTP 标头时遇到问题,因为我的标头没有这样的引号,而不是字符串"授权":"qii2nl32j2l3jel",我的标头没有这样的引号:授权:"1i2j12j"。祝你好运。

像这样:

NSDictionary* newRequestHTTPHeader = [[NSMutableDictionary alloc] init];
[newRequestHTTPHeader setValue:authValue forKey:@""Authorization""];
[newRequestHTTPHeader setValue:contentLengthVal forKey:@""Content-Length""];
[newRequestHTTPHeader setValue:contentMD5Val forKey:@""Content-MD5""];
[newRequestHTTPHeader setValue:contentTypeVal forKey:@""Content-Type""];
[newRequestHTTPHeader setValue:dateVal forKey:@""Date""];
[newRequestHTTPHeader setValue:hostVal forKey:@""Host""];
[newRequestHTTPHeader setValue:publicValue forKey:@""public-read-write""];
//the proper request is built with the new http headers.
NSMutableURLRequest* request2 = [[NSMutableURLRequest alloc] initWithURL:request.URL];
[request2 setAllHTTPHeaderFields:newRequestHTTPHeader];
[request2 setHTTPMethod:request.HTTPMethod];

在 get 请求中设置参数时出现此 1017 错误:

let headers = [
     "Cookie": "",
]
Alamofire.request(urlString, parameters: ["token": token],encoding: JSONEncoding.default, headers: headers).responseJSON { ...

这没有给出任何错误:

let headers = [
    "Cookie": "",
    "Authorization" : "Token " + token
]
Alamofire.request(urlString, method: .get, encoding: JSONEncoding.default, headers: headers).responseJSON {

相关内容

最新更新